Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#4

AW: Invalid Field Size bei TAdoDataset

  Alt 23. Feb 2021, 10:57
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.
  Mit Zitat antworten Zitat