Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi BDE zu ADO (https://www.delphipraxis.net/57924-bde-zu-ado.html)

Conrad2 28. Nov 2005 20:13

Datenbank: ACCESS • Version: 2003 • Zugriff über: ADO

BDE zu ADO
 
HI erstmal!!

hab ein wenig rumgesucht aber nichts genaues dazu gefunden...


also meine frage:
ich soll ein programm was eine ACCESS 97 datenbank mit bde ausließt so umschreiben, dass es auch neuere Datenbanken öffnen kann! dazu muss ich dann ja allerdings mit ADO darauf zugreifen!

ich hab in dem programm die prozedur zum öffnen der datenbank und ich hab auch schon das tutorialprogramm zu ADO/ACCESS gemacht... nur weiss ich jetzt nicht wie ich die tabelle in mein programm bekomme ohne alles möglich umschreiben zu müssen...

Könnt ihr mir helfen?

Hier mal die Source:
Delphi-Quellcode:
procedure OeffneDB(Pfad: String);
  var AliasParams: TStringList;
  begin
    with FMain do begin
      Table1.Active := false;
      AliasParams := TStringList.Create;
      AliasParams.Values['Database Name'] := Pfad;
      with Session do begin
        Close; Open; // aktualisieren
        DeleteAlias('DAV');
        AddAlias('DAV','MSACCESS', AliasParams);
      end;
      Database1.DatabaseName := 'DAV'; // keine Passwortabfrage
      with Table1 do begin
        DatabaseName := 'DAV';
        TableName   := 'Stammdaten';
        Active      := true;
      end;
      Datasource1.Dataset := Table1;
    end
  end;
Vielen Dank sconmal

C. :coder2:

Bernhard Geyer 28. Nov 2005 21:09

Re: BDE zu ADO
 
Hilft dir das ADO-Tutorial mit Access

Conrad2 28. Nov 2005 21:49

Re: BDE zu ADO
 
Erstmal danke für die schnelle antwort!!

Also ich hab das tutorial schon gemacht

bekomm auch ne datenbank geöffnet

nur wie kann ich dann in meiner prozedur das so ändern, dass ich die tabelle aus dem ADO-Zugriff als Table1 definieren kann?
geht das überhautp?

Danke C.

Bernhard Geyer 29. Nov 2005 07:11

Re: BDE zu ADO
 
Hast Du dir schon die Beispiele von Delphi unter <Delphi>\Demos\Ado angeschaut?

Wenn Du mit BDE halbwegs fit bist ist ADO kein Problem. Der Grundsätzliche umbau erfolgt:

TDatabase -> TADOConnection
TTable -> TADODataset
TQuery -> TADODataset

und anschließden TADODataset wieder mit TADOConnection verbinden. Evtl. sind einige Einstellungen
umzustellen (CursorLocation sollte bei Access immer auf clUseServer stehen).

man könnte zwar auch

TTable -> TADOTable
TQuery -> TADOQuery

machen (weniger Propery-Einstellungsaufwand) aber TADOTable/TADOQuery haben im Detail Implementierungsfehler/ungereimtheiten.


Und in allen Funktionen/Prozeduren/Methoden ersetz du TTable/TQuery durch TADODataset oder noch besser durch TDataset. (TDataset ist die Basisklasse und wenn du irgendwann mal mehr DBMS-Systeme unterstützen willst ist das von Vorteil).

th3lol 1. Feb 2006 19:08

Re: BDE zu ADO
 
Delphi-Quellcode:
      Database1.DatabaseName := 'DAV'; // keine Passwortabfrage
      with Table1 do begin
        DatabaseName := 'DAV';
        TableName   := 'Stammdaten';
Könnte diesen Part mal einer in ADO umschreiben? Bzw was muss ich für TableName und DatabaseName bei TADODataset verwenden? und was bei TADOConnection für DatabaseName?


Gruß

th3lol 2. Feb 2006 18:30

Re: BDE zu ADO
 
Zitat:

Zitat von th3lol
Delphi-Quellcode:
      Database1.DatabaseName := 'DAV'; // keine Passwortabfrage
      with Table1 do begin
        DatabaseName := 'DAV';
        TableName   := 'Stammdaten';
Könnte diesen Part mal einer in ADO umschreiben? Bzw was muss ich für TableName und DatabaseName bei TADODataset verwenden? und was bei TADOConnection für DatabaseName?


Gruß


Weiß hier denn keiner Rat? Oder macht ihr alle noch BDE? :P

Greetz und hoffnung auf hilfe :)

Bernhard Geyer 2. Feb 2006 18:41

Re: BDE zu ADO
 
1, Neue Frage -> Neuer Thread

2, Wird duch die Demos die unter <DelphiInstDir>\Demos\Ado vorhanden sind nichts klar?
Aber schau dir mal die Properties Connection und CommandText an.

shmia 2. Feb 2006 19:09

Re: BDE zu ADO
 
Bei ADO sind die ConnectionStrings der Dreh- und Angelpunkt.
Delphi-Quellcode:
const
//   DB_PROVIDER = 'Microsoft.Jet.OLEDB.3.51'; // Access 97
   DB_PROVIDER = 'Microsoft.Jet.OLEDB.4.0'; // Access 2000

function MDBGetConnectionString(const MDBFile: string): string;
begin
   Result := Format('Provider=%s;Data Source=%s',[DB_PROVIDER,MDBFile]);
end;

  ADOConnection1.ConnectionString := MDBGetConnectionString('C:\AccessTestDB.mdb');
  ADOConnection1.Open;
  AdoTable1.TableName := 'Stammdaten';
  AdoTable1.Open;

Bernhard Geyer 3. Feb 2006 07:16

Re: BDE zu ADO
 
Zitat:

Zitat von shmia
Bei ADO sind die ConnectionStrings der Dreh- und Angelpunkt.
Delphi-Quellcode:
const
//   DB_PROVIDER = 'Microsoft.Jet.OLEDB.3.51'; // Access 97
   DB_PROVIDER = 'Microsoft.Jet.OLEDB.4.0'; // Access 2000

Lass die Versionsangabe weg und Windows sucht automatisch die neueste Installierte JET-Version

Delphi-Quellcode:
DB_PROVIDER = 'Microsoft.Jet.OLEDB'


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