Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   ADO-aber wie? (https://www.delphipraxis.net/128773-ado-aber-wie.html)

Schorschi_jg 10. Feb 2009 10:11

Re: ADO-aber wie?
 
Ja das werd ich mir mal zulegen....aber hab mal ein bissel rumexperimentiert...und hab gemerkt, dass man bei der DataSource Komponente neue Felder hinzufügen kann und die dann den Columns eines DBGrids zuweisen kann...da ich mehrere Tabellen in der Datenbank haben wollte, hab ich einfach noch dementsprechend mehrere DBGrids Komponente eingefügt und so meine Tabellen erstellt...is das so richtig?...es wurde zumindest noch keine Fehlermeldung angezeigt....
wobei ich nun natürlich auch wieder vor dem nächsten Problem stehe...ich weis nicht, wie man nun Daten in diesen Tabellen speichern und abrufen kann...

sirius 10. Feb 2009 10:21

Re: ADO-aber wie?
 
du solltest dich anscheinend mal dringend mit Datenbanken und SQL beschäftigen. Ansonsten kommen wir hier nicht vorwärts.

Schorschi_jg 10. Feb 2009 12:56

Re: ADO-aber wie?
 
Ja sicher...nja...zugegebener maßen hab ich erst am 6. dezember 2008 angefangen delphi zu "lernen". Das heißt, ich habe angefangen ein buch über delphi zu lesen....Allerdings werden in dem Buch keine Datenbanken behandelt. Ich mir bin durchausbewusst, dass ich wahrscheinlich sehr grundlegende Fehler mache....aber das ist nunmal mein erstes Programm das ich überhaupt schreibe...und Delphi ist die erste Sprache, die ich überhaupt lerne...

Jedenfalls hab ich mich im Internet jetzt noch ein bissel über Datenbanken informiert...und bin dabei auf Relationale Datenbanken gestoßen. Soweit ich das verstanden hab, handelt es sich dabei um verschiedene Tabellen, die man innerhalb einer Datenbank anlegen und mit einander verknüpfen kann. Das geschieht, soweit ich das verstanden hab über einen Primärschlüssel.

Die Tabellen würde ich gern über das Programm selbst anlegen, für den Fall, dass der user kein Access hat, bzw damit nicht umgehen kann. Außerdem will ich so vorbeugen, dass ein Programmfehler auftritt, wenn die Datenbank nicht vorhanden ist, da sie in dem Fall vom Programm selbst erstellt wird.

wie die DAtenbank erstellt wird weis ich inzwischen, aber wie ich da nun Tabellen erstellen kann, konnte ich noch nicht herausfinden...wäre echt nett, wenn mir vllt jemand ein link oda irgwas geben könnte...

sirius 10. Feb 2009 13:08

Re: ADO-aber wie?
 
Prinzipiell reagieren (die meisten) Datenbanken auf SQL.
Du kannst also immer eine Query nehmen und mittels SQL die Tabellen erstellen. Das SQLKommando übergibst du in den dazugehörigen String (die Eigenschaft der Komponente heißt meist SQL). Der sieht etwa so aus "Create Table tabellenname..."
SQL-Code:
CREATE TABLE "Meine_Tabelle"
("ID" NUMBER(10) NOT NULL,
"NAME" VARCHAR2(40) NOT NULL,
"BETRAG" FLOAT(32),
PRIMARY KEY("ID"));
Die Syntax dazu findest du im Internet.
Ich weis nicht, ob es Delphi-Komponenten gibt, die das übernehmen. Kann sein. Ich arbeite lieber direkt.

delphifan2004 10. Feb 2009 14:51

Re: ADO-aber wie?
 
Hallo,

ich seh grad diesen Thread hier und hab in mein soeben runter geladenes und inzwischen installiertets Turbo Delphi geguckt. Wo finde ich die Klasse TCatalog?

Unter Ado auf jeden Fall nicht.

Wollte ne kleine Datenbank mit ADO bauen. Habe mir aus dem Delphi Treff das Handbuch gesaugt und will es nachvollziehen. Beim Stöbern im Netz hab ich nun diesen Thread entdeckt. Wo also ist TCatalog zu finden und was kann diese Klasse?

Schorschi_jg 10. Feb 2009 16:26

Re: ADO-aber wie?
 
hey na
ja...sorry...hab vergessen die Lösung für das problem dazuzuschreiben...hab ja selber gemerkt, dass die Funktion zum erstellen einer *.mdb datei so nicht funktioniert....stattdessen nutze ich jetzt diese funktion:

Delphi-Quellcode:
function CreateAccessDatabase(DBName : String) : Boolean;
var
   ADOxCatalog: Variant ;
begin
   ADOxCatalog :=CreateOleObject ('ADOX.Catalog');
 try
   ADOxCatalog.Create('Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=5;Data Source='+ DBName+'.mdb');
   result:= true;
 except
  result:= false;
 end;
end;

Allerdings musst du bei uses noch die Unit comobj angeben. Dann sollte das Funktionieren..tuts bei mir zumindest;)

TCatalog konnt ich unter Delphi 6 noch in der Typenbibliothek hinzufügen...bzw eher die ADO_TLB unit, in der TCatalog enthalten war...unter Turbo Delphi konnte ich diese Unit allerdings auch nicht mehr finden und somit auch TCatalog nicht mehr verwenden....

[edit=mkinzler]Tag korrigiert Mfg, mkinzler[/edit]

sirius 10. Feb 2009 16:29

Re: ADO-aber wie?
 
Du kannst dir aber auch die TybBibliothek erstellen, wenn du nicht über Variant gehen willst.
Unter TDE geht das leider nicht übers Menu, aber die tlibimp.exe findest du irgendwo im bin-Verzeichnis und eine Anleitung dazu war hier in der DP.

Edit: und die DLL dazu ist MSADOX.dll

Edit2: von hier aus dem Forum (damit alles bei einander ist)
Zitat:

Die Parameter sind praktisch selbsterklärend, ich benutze meist folgendes:

tlibimp.exe -P+ -D<Pfad> -Hpa<name> -Hps<name> <exename>

<Pfad> ist das Verzeichnis in dem die *_TLB.pas abgelegt werden soll.
<name> ist der Name der Komponentenpalette auf der die Sachen aus der Typelib später zu finden sein sollen.
<exename> ist der Name der Datei die die Typelib enthält. Also der Exe, Dll, Ocx, tlb, usw.
Das hpa und hps kannst du bei TDE weglassen.

Schorschi_jg 10. Feb 2009 19:00

Re: ADO-aber wie?
 
also hab das jetzt mit dem SQL-Code gemacht...funktioniert echt gut
hab außerdem noch ein recht hilfreichen link, wie ich finde...falls jemand mal das selbe problem hat und noch nie was mit SQL geschrieben bzw sonst irgwie zu tun hatte...

SQL-Syntax

ist zwar für fortgeschrittene bestimmt etwas dürftig aber mir hats schonmal geholfen :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 Uhr.
Seite 2 von 2     12   

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