32 |
# |
# |
33 |
# Supported attributes (via connections.conf or <database> tag) |
# Supported attributes (via connections.conf or <database> tag) |
34 |
# |
# |
35 |
# connstr = This is the full connection string to use, like: |
# oledb_provider (required) |
36 |
# |
# data_source (required) |
37 |
# connstr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydb.mdb; |
# initial_catalog (optional for SQL Server) |
38 |
|
# network_library (optional for SQL Server) |
39 |
|
# data_provider (optional for SQL Server) |
40 |
# |
# |
41 |
# You can find more connection strings here: |
# You can find more connection strings here: |
42 |
# http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm |
# http://www.able-consulting.com/MDAC/ADO/Connection/OLEDB_Providers.htm |
43 |
# |
# |
44 |
|
|
45 |
import sys, string, types |
_examples = """ |
46 |
|
[access] |
47 |
|
comment = MS Access database |
48 |
|
provider = adodbapi |
49 |
|
oledb_provider = Microsoft.Jet.OLEDB.4.0 |
50 |
|
data_source = C:\mydb.mdb |
51 |
|
|
52 |
|
[sqlserver] |
53 |
|
comment = MS SQL Server database |
54 |
|
provider = adodbapi |
55 |
|
oledb_provider = sqloledb |
56 |
|
data_source = myServerName |
57 |
|
initial_catalog = myDatabaseName |
58 |
|
""" |
59 |
|
|
60 |
from gnue.common.datasources import GDataObjects, GConditions, GConnections |
from gnue.common.datasources import GDataObjects, GConditions, GConnections |
61 |
from gnue.common.apps import GDebug |
from gnue.common.apps import GDebug |
62 |
from gnue.common.datasources.drivers.DBSIG2.Driver \ |
from gnue.common.datasources.drivers.DBSIG2.Driver \ |
97 |
self._DatabaseError = SIG2api.DatabaseError |
self._DatabaseError = SIG2api.DatabaseError |
98 |
self._resultSetClass = Adodbapi_ResultSet |
self._resultSetClass = Adodbapi_ResultSet |
99 |
|
|
|
|
|
100 |
def connect(self, connectData={}): |
def connect(self, connectData={}): |
101 |
GDebug.printMesg(1,"Adodbapi database driver initializing") |
GDebug.printMesg(1,"Adodbapi database driver initializing") |
|
|
|
|
try: |
|
|
adoConn=win32com.client.Dispatch("ADODB.Connection") |
|
|
except: |
|
|
tmsg = _("SetUpError: Is MDAC installed?\n\n[%s") % message |
|
|
raise GConnections.AdapterNotInstalled, tmsg |
|
102 |
|
|
103 |
try: |
try: |
104 |
connStr = r"%s" % connectData['connstr'] |
connPar = {'Provider': connectData['oledb_provider'], |
105 |
|
'Data Source' : connectData['data_source'], |
106 |
|
'User Id' : connectData['_username'], |
107 |
|
'Password' : connectData['_password'] |
108 |
|
} |
109 |
|
# optional parameters for MS SQL Server |
110 |
|
for gnueName, oledbName in [('initial_catalog', 'Initial Catalog'), |
111 |
|
('network_library', 'Network Library'), |
112 |
|
('data_provider', 'Data Provider'), |
113 |
|
]: |
114 |
|
if connectData.has_key(gnueName): |
115 |
|
connPar[oledbName] = connectData[gnueName] |
116 |
|
|
117 |
|
connStr = ';'.join([r"%s=%s" % (k,v) for k,v in connPar.items()]) |
118 |
|
GDebug.printMesg(1,'Adodbapi connection string="%s"' % connStr) |
119 |
|
|
120 |
self._dataConnection = SIG2api.connect(connStr) |
self._dataConnection = SIG2api.connect(connStr) |
121 |
|
|
122 |
except self._DatabaseError, value: |
except self._DatabaseError, value: |
123 |
raise GDataObjects.LoginError, value |
raise GDataObjects.LoginError, value |
124 |
|
|