AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Invalid Field Size bei TAdoDataset

Invalid Field Size bei TAdoDataset

Ein Thema von Marco Steinebach · begonnen am 22. Feb 2021 · letzter Beitrag vom 24. Feb 2021
Antwort Antwort
Marco Steinebach

Registriert seit: 4. Aug 2006
454 Beiträge
 
Delphi 5 Enterprise
 
#1

Invalid Field Size bei TAdoDataset

  Alt 22. Feb 2021, 21:13
Datenbank: FireBird • Version: 3.x • Zugriff über: ADO
Hallo zusammen,
nichteinmal ein einfaches Datenbank-Hallo-Welt ist mir vergönnt.
Ich habe ein riesiges Projekt , mit einem Formular und einer Komponente und zwar
TAdoDataset.
Bei Connection-String steht meine, eingerichtete, Datenquelle drin, und bei CommandText
SELECT * FROM MOO.
Prüfe ich die Datenquelle mittels TAdoConnect, connected true, klappt die Verbindung.
Setze ich nun mein
AdoDataset1 auf
active true
kommt genau jene Fehlermeldung
Invalid field size.
Ich hab nicht mal was angegeben, geändert oder so, ich will nur einfach, dass er mir die Datensätze aus der Tabelle ausgibt.....

Hiiiiilfe! Bitte!

Herzlich grüßt
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.877 Beiträge
 
Delphi XE4 Professional
 
#2

AW: Invalid Field Size bei TAdoDataset

  Alt 23. Feb 2021, 00:19
Hallo,
das DataSet braucht eine Connection, also eine 2. Komponente.
Heiko
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
454 Beiträge
 
Delphi 5 Enterprise
 
#3

AW: Invalid Field Size bei TAdoDataset

  Alt 23. Feb 2021, 07:41
Moin zusammen,
Die Nacht war kurz, aber Erfolgreich .
Ich verbinde mich (Delphi5), mittels ODBC zu einem Firebird-Server V3.0.7 - geht nicht, wie im 1. Post beschrieben.
Nehme ich, alles Andere bleibt gleich, einen Firebird-Server V2.5.9 , ist alles schön.
Gibt es zwischen V2.5 und V3.0.7 signifikante Unterschiede, ich brauche, denke ich, nur die SQL-Basics wie select, insert, update delete?
Wenn ja, also wenn der FB3 z.B, viel schneller ist, kann ich irgendwie herausfinden, welche Anweisung der ODBC-Treiber schickt, die dem FB3 nicht passt?

Herzlich grüßt
Marco
Marco Steinebach
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.540 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
Marco Steinebach

Registriert seit: 4. Aug 2006
454 Beiträge
 
Delphi 5 Enterprise
 
#5

AW: Invalid Field Size bei TAdoDataset

  Alt 23. Feb 2021, 18:28
Huhu,
Genau so, wie du es beschrieben hast, hatte ich es auch. Die Verbindung zur DB klappt problemlos, nehme ich beim AdoDataset den integrierten SQL-Editor, zeigt er mir auch alle Felder, deren Typen und Längen korrekt an.
Sobald ich allerdings, zum Ausprobieren,
active auf TRUE setze kommt der beschriebene Fehler.
An den FieldDefs hab ich nix gemacht, hab's auch nochmal von ganz forne begonnen, ist ja, im Moment ohnehin nur zum Lernen, weil ich sicherstellen wollte, nicht irgendwo,aus Versehen, Blödsinn eingegeben zu haben.
Aber nix geht.
Mach ich das Ganze mit FB2.5.9 funktioniert alls sofort und tadellos.
Das gleiche gilt auch für AdoQuery, sobald ich active auf TRUE setze, rappelt es. Geht auch, wenn ich im Code
adoDataset1.open;
aufrufe.

Herzlich grüßt
Marco
Marco Steinebach

Geändert von Marco Steinebach (23. Feb 2021 um 18:31 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.877 Beiträge
 
Delphi XE4 Professional
 
#6

AW: Invalid Field Size bei TAdoDataset

  Alt Gestern, 05:40
Hallo,
ahn, FB3 geht nicht, FB2 geht.

Dann sind die Treiber zu alt.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
4.669 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Invalid Field Size bei TAdoDataset

  Alt Gestern, 06:35
Zitat:
Dann sind die Treiber zu alt.
+ 1

...probiere mal ZEOS. (bekennender ADO "Hasser" wegen reichlich Problemen in der Vergangenheit (Locate MSSQL z.B.) )
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.877 Beiträge
 
Delphi XE4 Professional
 
#8

AW: Invalid Field Size bei TAdoDataset

  Alt Gestern, 07:16
Hallo,
hier geht es um u.a. ODBC, also etwa sseeehr altes.
Zitat:
Gibt es zwischen V2.5 und V3.0.7 signifikante Unterschiede
Ja, der (Schreib)-Zugriff auf die Systemtabellen ist nicht mehr erlaubt.
Ob der ODBC-Treiber da Murks macht -> k.A. .

Ich würde per Google mal wegen dem ODBC und "Tracing" der Befehle suchen.

Und zuletzt: FB3 ist nicht unbedingt schneller als FB1 oder FB2.
Heiko
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf