![]() |
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:
Vielen Dank sconmal
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; C. :coder2: |
Re: BDE zu ADO
Hilft dir das
![]() |
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. |
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). |
Re: BDE zu ADO
Delphi-Quellcode:
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?
Database1.DatabaseName := 'DAV'; // keine Passwortabfrage
with Table1 do begin DatabaseName := 'DAV'; TableName := 'Stammdaten'; Gruß |
Re: BDE zu ADO
Zitat:
Weiß hier denn keiner Rat? Oder macht ihr alle noch BDE? :P Greetz und hoffnung auf hilfe :) |
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. |
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; |
Re: BDE zu ADO
Zitat:
Delphi-Quellcode:
DB_PROVIDER = 'Microsoft.Jet.OLEDB'
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 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