ODBC koppeling lijkt te werken, maar toch niet?

  • Onderwerp starter Onderwerp starter N1ckk
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

N1ckk

Gebruiker
Lid geworden
3 jul 2013
Berichten
6
Beste,

Hopelijk kunnen jullie mij helpen:
Voor mijn werk moet ik een ODBC koppeling verzorgen naar een progress database. De ODBC driver is geinstalleerd op SQl server en de connectie is er.
Met de applicatie SQL business intelligence development studio worden er procedures aangemaakt waarbij er gegevens overgehaald worden vanuit de progress database.
Hiervoor is een test procedure opgesteld waarbij we één tabel proberen over te halen (SSIS package). Hier kan ik zien dat de datasource werkt; in een preview kan ik de gegevens van de tabel die ik wil overhalen inzien. Dit zou betekenen dat de connectie werkt. Zie afbeelding:
Preview SSIS.png

Echter als ik de procedure daadwerkelijk opstart krijg ik alsnog de volgende foutmelding:
foutmelding SSIS.jpg

Hieronder volgt de volledige uitgeschreven foutmelding, er lijkt alsnog een connectieprobleem te zijn? Hoe kan dit?

[BCLI [16551]] Error: System.Data.Odbc.OdbcException: ERROR [HY000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver]Insufficient information to connect to the data source.
ERROR [HY000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver]Insufficient information to connect to the data source.
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.Odbc.OdbcConnection.Open()
at Microsoft.SqlServer.Dts.Runtime.ManagedHelper.GetManagedConnection(String assemblyQualifiedName, String connStr, Object transaction)
at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnectionManager100.AcquireConnection(Object pTransaction)
at Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.AcquireConnections(Object transaction)
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnections(IDTSManagedComponentWrapper100 wrapper, Object transaction)

Ik hoop dat ik het zo goed verwoord en dat iemand mij kan helpen!
 
Laatst bewerkt:
Hoe heb je die ODBC verbinding gekoppeld aan die applicatie? Ik zie staan: "Insufficient information to connect to the data source."
Oftewel: Ik vermoed dat je óf een User DSN hebt aangemaakt óf wel een System DSN, maar toch op een andere manier verbindt (bijv. m.b.v. een connection-string of zo).

Check het allemaal eens na, zou ik zeggen.

Tijs.
 
Plak je ODBC string eens hier.

Overigens heb ik met een google search wel gevonden dat bijvoorbeeld de "pwd=" string verplicht in de ODBC string moet staan, omdat anders zo'n probleem kan optreden.
 
Hoi Tijs,

Bedankt voor de snelle reactie.
Ik maak gebruik van een System DSN. Zie afbeelding:
connectie ODBC.png
Links de ODBC driver en rechts de connectie manager van de applicatie.
Moet de connection string misschien aangepast worden??

PS. ik heb voor de veiligheid de hostname weggehaald. deze is wel gevuld natuurlijk :)
 
Er staat in je rechter venstertje een knop "Test connection"
Is dat wel gedaan?
[Ik heb verder geen mening/verhaal bij de tip van wampier, maar mogelijk is die ook zinvol.]

Tijs.
 
De grafische shell van windows is allemaal leuk en aardig, maar uiteindelijk komt daar gewoon een string uit a la:

"Dsn=<dsn name>;uid=ADMINISTRATOR;pwd=;host=<host>;port=<port no>;db=<database>"

De error betekend in zijn algemeenheid dat er iets mist (of op een manier staat die de driver niet snapt) in bovenstaande string dat de driver verwacht / niet kent. De naakte string heeft mogelijk een clue waarop je gerichter kunt zoeken
 
@wampier: Dus je zegt eigenlijk dat puur de System DSN te koppelen onvoldoende is? Zelfs als de hostnaam, inlognaam etc. er al in is vastgelegd?

Tijs.
 
@dnties

dat kan, dat is namelijk afhankelijk van de ODBC driver. ODBC is een standaard waarin elke leverancier van een database een driver maakt waarmee een andere applicatie volgens de richtlijnen data uit die applicatie kan halen.

Wat de specifieke driver accepteert is echter aan de eigenlijke implementatie. MySQL, access en sommige andere databases accepteren bijvoorbeeld het weglaten van "pwd=" als een leeg password en geven geen error en proberen simpelweg met een leeg password de database te openen. Van de progress driver is bijvoorbeeld bekend dat die crashed met bovenstaande error als "pwd=" mist uit de string. progress wil alle variabelen in de string, ook al zijn ze "default" of leeg.
 
@wampier: Bedankt voor de toelichting. Ik vind het gedrag wat jij beschrijft (verschillende interpretaties van een System DSN) nogal "teleurstellend", maar ik (en de TS) kan maar beter hier over geïnformeerd zijn dan het niet geweten hebben. :D

Nogmaals dank.

Tijs.
 
Als ik de connectiestring selecteer en volledig erin zet dan verdwijnt bij opslaan het pwd statement, is dit beveiliging?
Daarnaast vind ik het vreemd dat hij automatisch weer terug springt naar "Use user or system datasource name" ipv van "Use connection string" of hoort dit zo? De connection string blijft wel gevuld.
Zie afbeelding
connectie ODBC2.png
 
Het password moet ik daardoor overigens ook steeds opnieuw invoeren, is dit normaal?
 
Use connection string zou normaal moeten werken (maar ik gebruik zelden de wizard). anders met de hand pwd=<jouw password> toevoegen en kijken of dat werkt.

@dnties: microsoft is hier ook niet heilig in hoor. Er zijn al bijna 20 jaar 64-bit processors op de markt en microsoft heeft nog steeds geen 64-bit compatible ODBC driver uitgebracht voor access of hun gratis oplossingen (tenminste nog niet in 2012, mogelijk is dat nu verbeterd, ben een beetje uit de MS wereld).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan