Bei
ADO nehme man:
TADOQuery und gebe dort in der Eigenschaft
SQL das gewünschte Statement ein.
Delphi-Quellcode:
ADOQuery.Close;
ADOQuery.SQL.Text := 'select * from moo';
ADOQuery.Open;
Den Connectionstring kann man auch bei der entsprechenden Eigenschaft der TADOQuery angeben, wenn man sowieso nur eine TADOQuery im Programm nutzen möchte. Alternativ kann man natürlich auch eine TADOConnection nehmen, über diese die Verbindung aufbauen und sie der entsprechenden Eigenschaft der TADOQuery zuweisen.
Es gibt also zwei Wege, um eine Verbindung zur Datenbank aufzubauen.
Bei mir laufen Delphi 7, FireBird 3 über
ODBC und TADO-Komponenten auf Windows XP problemlos.
Wie ein Connectionstring aussehen kann steht hier:
https://www.delphipraxis.net/1483279-post36.html
Minimalversion mal eben mit Delphi 7 zusammengedaddelt:
Das Formular (
DFM)
Delphi-Quellcode:
object Form1: TForm1
Left = 192
Top = 107
Width = 188
Height = 165
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object ADOConnection1: TADOConnection
Connected = True
ConnectionString =
'Provider=MSDASQL.1;Persist Security Info=False;Data Source=MOO' +
';Initial Catalog=MOO'
Left = 48
Top = 16
end
object ADODataSet1: TADODataSet
Active = True
Connection = ADOConnection1
CursorType = ctStatic
CommandText = 'select * from moo'
Parameters = <>
Left = 48
Top = 64
end
end
Quelltext:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
DB, ADODB;
type
TForm1 =
class(TForm)
ADOConnection1: TADOConnection;
ADODataSet1: TADODataSet;
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Die Verbindung zur Datenbank wird damit bereits in der
IDE hergestellt und die Tabelle geöffnet, ohne Fehlermeldung.
Solltest Du beim TAdoDataset bei der Eigenschaft FieldDefs etwas eingegeben habe, prüfe bitte, ob die dortige Eingabe mit dem Tabellenaufbau in der Datenbank übereinstimmt. Differenzen, zwischen den dortigen Eingaben und den tatsächlichen Definitionen auf Datenbankseite, führen zu dem von Dir genannten Fehler.