Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Mit TurboDelphi Datenbank anlegen (https://www.delphipraxis.net/142898-mit-turbodelphi-datenbank-anlegen.html)

Exterior 5. Nov 2009 18:42

Datenbank: .mdb • Zugriff über: ADO

Mit TurboDelphi Datenbank anlegen
 
Hallo Leute,

ich habe vor, in einem Programm ein paar Daten per Button-Klick in eine Access-Datenbank (.mdb) auszulagern.

Allerdings gibt es da natürlich Probleme, wenn die Datenbank aus versehen gelöscht wird.
Nun muss ich aber davon ausgehen, dass die Leute, die das Programm nutzen sollen, evtl. kein Access haben und keine neue DB erstellen können.


Auf gut deutsch: Gibt es mit TurboDelphi Explorer eine Möglichkeit, eine solche DB komplett neu zu erzeugen?

Habe bei Google leider nichts sinnvolles gefunden :(

mfg Exterior

fatalerror 5. Nov 2009 19:47

Re: Mit TurboDelphi Datenbank anlegen
 
Habe folgenden Code mal irgendwoher in meine Codesammlung kopiert. Weiss die Quelle nicht mehr.

Delphi-Quellcode:

uses
  SysUtils, ActiveX, Variants, ADOX_TLB in 'ADOX_TLB.pas', ADODB_TLB in 'ADODB_TLB.pas';



procedure NewDatabase;
var
  Catalog: _Catalog;
  Connection: _Connection;
  Command: _Command;
  Parameters: OleVariant;
  RecordsAffected: OleVariant;
begin
  Catalog := CoCatalog.Create;
  try
    Catalog.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\Test.mdb";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Password=hello;');
    if Succeeded(IUnknown(Catalog.Get_ActiveConnection).QueryInterface(_Connection, Connection)) and Assigned(Connection) then
    begin
      Command := CoCommand.Create;
      try
        Command.CommandTimeout := 0;
        Command.Set_ActiveConnection(Connection);
        Command.CommandText := 'create table ApplePie(ID SmallInt, Name Text(20));';
        Parameters := EmptyParam;
        Command.Execute(RecordsAffected, Parameters, 0);
      except
      end;
    end;
  finally Catalog := nil;
  end;
end;

begin
  CoInitialize(nil);
  try
    NewDatabase;
  except on E: Exception do WriteLn(StringOfChar('=', 80), #13#10, E.Message);
  end;
  CoUninitialize;
end.

Exterior 5. Nov 2009 22:12

Re: Mit TurboDelphi Datenbank anlegen
 
Das sieht ja schonmal nicht schlecht aus :)

Nur eine Sache noch: Woher bekomme ich diese "ADOX_TLB.pas"?

Bei TurboDelphi kann man ja leider keine neuen Komponenten importieren, aber wenn das mit einer .pas geregelt wäre, wäre das nicht schlecht :)

fatalerror 6. Nov 2009 13:20

Re: Mit TurboDelphi Datenbank anlegen
 
Zitat:

Zitat von Exterior
Das sieht ja schonmal nicht schlecht aus :)

Nur eine Sache noch: Woher bekomme ich diese "ADOX_TLB.pas"?

Bei TurboDelphi kann man ja leider keine neuen Komponenten importieren, aber wenn das mit einer .pas geregelt wäre, wäre das nicht schlecht :)

Typenbibliothek importieren

Exterior 7. Nov 2009 02:48

Re: Mit TurboDelphi Datenbank anlegen
 
Aaah, ich kriege ne Krise -,-'

Wo finde ich die Kommandozeile, von welcher in deinem verlinkten Thread die Rede ist? Ist die im TurboDelphi? (Sorry, ist wahrscheinlich ne blöde Frage :( )

Außerdem habe ich jetzt ne halbe Ewigkeit gegooglet, aber ich habe die ADOX-Bibliothek bzw. dieses "ADO Extensions for Data Definition Language and Security" nirgendwo zum Download gefunden :( Bin ich blind oder einfach nur dämlich?

fkerber 7. Nov 2009 08:45

Re: Mit TurboDelphi Datenbank anlegen
 
Hi!

Damit ist wohl die "normale" Kommandozeile gemeint. Also Start --> Ausführen --> CMD [Enter] (Falls es Start --> Ausführen nicht gibt bei dir, tut es auch [Win]+[R])


Grüße, Frederic

fatalerror 7. Nov 2009 13:53

Re: Mit TurboDelphi Datenbank anlegen
 
Zitat:

Zitat von Exterior
Aaah, ich kriege ne Krise -,-'

...

Außerdem habe ich jetzt ne halbe Ewigkeit gegooglet, aber ich habe die ADOX-Bibliothek bzw. dieses "ADO Extensions for Data Definition Language and Security" nirgendwo zum Download gefunden :( Bin ich blind oder einfach nur dämlich?

Ich bin mir nicht mehr ganz sicher, aber ich denke ab Windows XP gehören die Microsoft Data Access Components zum Betriebssystem. Solltest du also unter c:\program files\common files\system\ado finden

msadox.dll, msado15.dll


ansonsten suche nach: microsoft mdac

Exterior 8. Nov 2009 19:04

Re: Mit TurboDelphi Datenbank anlegen
 
Hey, hat super geklappt, danke :)

Kleine Frage noch: Kann ich mit diesem Tlibimp über die Kommandozeile auch sowas wie ZeosLib importieren, welches mir eigene neue Formular-Komponenten zur Verfügung stellt, die ich dann auf's Formular ziehen kann, so wie die Standard-Komponenten?

fatalerror 8. Nov 2009 21:14

Re: Mit TurboDelphi Datenbank anlegen
 
Zitat:

Zitat von Exterior
Hey, hat super geklappt, danke :)

Kleine Frage noch: Kann ich mit diesem Tlibimp über die Kommandozeile auch sowas wie ZeosLib importieren, welches mir eigene neue Formular-Komponenten zur Verfügung stellt, die ich dann auf's Formular ziehen kann, so wie die Standard-Komponenten?

Nein! die Zeoslibs hast du als delphi source zur Verfügung und nicht wie die MDAC Komponenten als DLL. Hier musst Du anders vorgehen:

1. Zeos Komponenten kompilieren.
2. Die benötigeten Units in dein Project einbinden
3. Soweit ich informiert bin, kannst du in Turbo Delphi keine Komponenten in der IDE einbinden (ich benutze kein Turbo Delphi), also musst du die Zeoskomponenten zur Laufzeit erzeugen

Pseudo Code!
Delphi-Quellcode:
uses

zconnection, ZDataset,

var
connection: TZConnection

Begin
   connection:= TZConnection.create(self);
   connection.hostname:= ....


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:39 Uhr.

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