Wil dus in C#.NET een Caché (http://www.intersystems.com) OODB raadplegen. Voor Caché is een ODBC-driver beschikbaar en die heb ik geïnstalleerd. Ik kan dus een system-dns aanmaken voor een Caché database. Nou blijkt C# niet via een system-dns met een database te kunnen babbelen. Dus heb je een OLEDB- of SQLConnection nodig.
Deze connecties willen een zogenaamde connectionString die aangeeft om welke driver en welke datasource het gaat. En daar beginnen de foutmeldingen.
Bij het gebruik van een OLEDBConnection treedt de volgende foutmelding op:
InvalidOperationException: The 'InterSystems ODBC' provider is not registered on the local machine.
Bij het gebruik van SQLConnection de volgende foutmelding:
ArgumentException: Unknown connection option in connection string: provider.
Waarschijnlijk gaat het om de naam van de driver (Provider=InterSystems ODBC), deze klopt misschien niet. Hoe kom ik erachter wat wel de juiste naam is. Op de site van InterSystems is daarover niks te vinden. De connectionstring heb ik deels op de volgende manier gekregen:
I create a .txt file on my desktop
rename it to .udl
double click it
Presto! Connection builder pops up
rename it again to .txt
double click it
voila: there is notepad with my connection string
Wat kan ik nu nog doen, zit er een probleem in de connectionstring of zou je via C# helemaal geen Caché database kunnen raadplegen?
Deze connecties willen een zogenaamde connectionString die aangeeft om welke driver en welke datasource het gaat. En daar beginnen de foutmeldingen.
Bij het gebruik van een OLEDBConnection treedt de volgende foutmelding op:
InvalidOperationException: The 'InterSystems ODBC' provider is not registered on the local machine.
code:
1
2
3
| OleDbConnection myAccessConn = new OleDbConnection("Provider=InterSystems ODBC;
Persist Security Info=False;User ID=joris;
password=joris;Data Source=TRIAL1DB"); |
Bij het gebruik van SQLConnection de volgende foutmelding:
ArgumentException: Unknown connection option in connection string: provider.
code:
1
2
3
| SqlConnection myConnection = new SqlConnection("Provider=InterSystems ODBC;
Persist Security Info=False;User ID=joris;
password=joris;Data Source=TRIAL1DB"); |
Waarschijnlijk gaat het om de naam van de driver (Provider=InterSystems ODBC), deze klopt misschien niet. Hoe kom ik erachter wat wel de juiste naam is. Op de site van InterSystems is daarover niks te vinden. De connectionstring heb ik deels op de volgende manier gekregen:
I create a .txt file on my desktop
rename it to .udl
double click it
Presto! Connection builder pops up
rename it again to .txt
double click it
voila: there is notepad with my connection string
Wat kan ik nu nog doen, zit er een probleem in de connectionstring of zou je via C# helemaal geen Caché database kunnen raadplegen?