Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ConnectionString - User und Passwort mitgeben - wie - dsn (https://www.delphipraxis.net/72310-connectionstring-user-und-passwort-mitgeben-wie-dsn.html)

Susanne 28. Jun 2006 13:39

Datenbank: as400 • Zugriff über: ado

ConnectionString - User und Passwort mitgeben - wie - dsn
 
Ich möchte mit ADO auf eine Tabelle auf einer AS400 zugreifen. Mein Problem besteht aber im Moment noch darin, mit dem Ado-Objekt eine Verbindung herzustellen.

Ich habe eine DSN in den ODBC-Datenquellen eine System-DSN erstellt. Mit Access habe ich versucht eine Verknüpfung zu einer Tabelle auf der AS400 herzustellen, er hat mich dort nach UserName und Password gefragt. Dies ging dann.

Bis jetzt sieht das ganze so aus:

Delphi-Quellcode:

AdoQuery1.ConnectionString:= 'DSN=EKDCT';
AdoQuery1.Active:= true;
Meldung ist, dass das Passwort auf der AS400 nicht stimmt. Also muss ich ihm doch irgendwie sagen können, welchen User und welches Password er nehmen soll. Aber wie mache ich das?

Die gleiche Meldung kam auch bei Access, nur das ich eben die Möglichkeit hatte, dort einen anderen User und Password eingeben.

Alexander 28. Jun 2006 13:44

Re: ConnectionString - User und Passwort mitgeben - wie - ds
 
Moin,
du musst einfach den User und das PW mitliefern:
Delphi-Quellcode:
AdoQuery1.ConnectionString:= 'DSN=EKDCT;Uid=myUserName;Pwd=myPwd';
Nachtrag: Evtl. kann man ja auch in der DSN das PW und den User hinterlegen? Bei den MySQL Provider für ODBC oder OLE geht das. Mit deiner DB habe ich so noch nichts zu tun gehabt...

Gollum 28. Jun 2006 14:39

Re: ConnectionString - User und Passwort mitgeben - wie - ds
 
Hallo,

einen DSN musst Du nicht anlegen. Wichtig ist nur, das der Client-Access-ODBC-Treiber verfügbar ist.

Mit folgender Funktion kannst Du Dich an jeder AS400 anmelden, solange Du die Bibliothek kennst:

Delphi-Quellcode:
function MakeConStr_ODBC_AS400(const aIP, aLibrarie, aUser, aPWD:String);
begin
  Result:=
    'DRIVER=Client Access ODBC Driver (32-bit);'+
    Format('SYSTEM=%s;', [aIP])+
    Format('DefaultLibraries=%s;', [aLibrarie])+
    Format('UserID=%s;', [aUser])+
    Format('PASSWORD=%s;', [aPWD]);
end; // MakeConStr_ODBC_AS400
Diese Vorgehensweise hat den Vorteil, dass keine DSN mehr installiert werden muss, und Dein Programm überall dort läuft, wo ein IBM-Client installiert ist.

Aufgerufen wird das ganze dann in etwa so:
Delphi-Quellcode:
  ...
  AdoConnection1.ConnectionString:=
    MakeConStr_ODBC_AS400('127.0.0.1', 'AS400Bibliothek', 'DerUser', 'DasPassword');
  try
    AdoConnection1.Connected:=True;
  except
    on E: Exception do MessageDlg(E.Message, mtError, [mbOk], 0);
  end; // try
  ...

Alexander 28. Jun 2006 18:17

Re: ConnectionString - User und Passwort mitgeben - wie - ds
 
Ganz vergessen: Schau dir auch mal die Seite www.connectionstrings.com an. Da sind alle viele ConnectionStrings aufgelistet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz