Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Quelldatenbank eines ODBC-Eintrags zur Laufzeit ändern. (https://www.delphipraxis.net/12314-quelldatenbank-eines-odbc-eintrags-zur-laufzeit-aendern.html)

Lord_Stifterl 25. Nov 2003 00:27


Quelldatenbank eines ODBC-Eintrags zur Laufzeit ändern.
 
Hallo alle zusammen,

ich hoffe jemand von euch kann mir helfen. Ich schaffe es einfach nicht folgende PCHAR Variable in eine Zeichenkette einzugliedern um einen API-Call aufzurufen, mit welchem ich einen ODBC-Eintrag zur Laufzeit bearbeiten bzw. konfigurieren kann.

Code:
     
  var
  Pfad: PCHAR;
      Pfad := PCHAR(eDB.Text);
      if not (SQLConfigDataSource(0,ODBC_CONFIG_DSN,'Microsoft Access-Treiber (*.mdb)',
        PChar('DSN=DesktopDB'#0'Description='#0'Database='#0'User='#0'Password='#0) ) ) then
//Die Variable Pfad müsste bei DATABASE eingefügt werden, aber irgendwie will mir das nicht
//gelingen.
      Begin
        ShowMessage('Beim Konfigurieren des ODBC-Eintrags ist ein Fehler aufgetreten.');
      End;
LG

Lord Stifterl

Lord_Stifterl 1. Dez 2003 22:22

Re: Quelldatenbank eines ODBC-Eintrags zur Laufzeit ändern.
 
Ist schon irgendwie komisch. Das ist der zweite Eintrag, welchen ich in dieses Forum schreibe, und gleichzeitig ist es der zweite Eintrag zu dem ich keine Antwort bekomme. Sind die Fragen zu kompliziert? Wollt Ihr mir nicht helfen??

LG
Lord_Stifterl

MrSpock 1. Dez 2003 22:28

Re: Quelldatenbank eines ODBC-Eintrags zur Laufzeit ändern.
 
Hallo Lord_Stifterl,

hast du dir schon einmal den Beitrag in der Codelibrary angeschaut, der sich mit ODBCbefasst? Vielleicht hilft der dir weiter!?

Lord_Stifterl 2. Dez 2003 11:02

Re: Quelldatenbank eines ODBC-Eintrags zur Laufzeit ändern.
 
Lieber Spock,

aus diesem Beitrag hab ich den Code. Wie gesagt mein Problem liegt einfach darin, dass sämtliche Parameter übergeben werden, jedoch nicht der Parameter, welcher angibt wo die DB liegt. Wenn ich den Parameter fix übergebe(hardcoded) dann funktionierts. Dieser Wert sollte aber variabel sein da ich auf verschiedene Datenbanken zugreifen will. Logische folge daraus, ich muss mir einen String zusammenbasteln. Jedoch hab ich noch nie eine PChar Zeichenkette zusammengebastelt. Die üblichen Varianten wie z.B.:

Code:
name := 'Lord' + '_' + 'Stifterl';
funktionieren nicht. Jetzt wollte ich wissen ob mir jemand sagen kann, wie ich die Variable PFAD richtig in die PCHAR-Zeichenkette einfügen kann bzw. ob dies überhaupt möglich ist. Kann sein, dass das in meiner Problemstellung nicht so rübergekommen ist wie es sollte.

Danke auf jedenfall für deine Antwort :thuimb:

LG
Lord_Stifterl

MrSpock 2. Dez 2003 12:21

Re: Quelldatenbank eines ODBC-Eintrags zur Laufzeit ändern.
 
Hallo Lord_Stifterl,

am besten baust du den String ganz normal zusammen und castest ihn dann im Aufruf:

Delphi-Quellcode:
var
  dbname : String;

...
  dbname := 'DSN=DesktopDB'+#0+'Description='+#0+'Database='+theCurrentDatabase+#0
         +'User='+theCurrentUser+#0+'Password='+theCurrentPassword+#0;
 
  Pfad := PCHAR(eDB.Text);
  if not (SQLConfigDataSource(0,ODBC_CONFIG_DSN,'Microsoft Access-Treiber (*.mdb)', PChar(dbname)) then ...

Lord_Stifterl 2. Dez 2003 21:58

Re: Quelldatenbank eines ODBC-Eintrags zur Laufzeit ändern.
 
Hi MrSpock,

ich bin mir leider nicht mehr sicher ob ich diese Variante schon versucht habe. Werde es auf jedenfall mal probieren. Danke für die Antwort und sollten wir uns nicht mehr lesen,

Frohe Weihnachten, Prosit 2004 und schöne Grüße aus Wien,

Lord_Stifterl


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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