![]() |
_Recordset erstellen
Ich bin gerade bei Umstieg von D 6/XP auf XE2/Win7.
unter den D6 Bedingungen hatte ich folgendes:
Delphi-Quellcode:
was immer funktioniert hat.
FRSet:=CreateComObject(CLASS_RECORDSET) as _Recordset;
FRSet.CursorLocation:=adUseClient; FRSet.Fields.Append('k',adInteger,4,adFldKeyColumn); FRSet.Fields.Append('POSX',adSingle,0,adFldUnspecified); FRSet.Fields.Append('POSY',adSingle,0,adFldUnspecified); FRSet.Open(EmptyParam,EmptyParam,adOpenUnspecified,adOpenUnspecified); Unter XE2 beklagt sich der Compiler: "Nicht genügend Parameter" (beim 1. Append bereits). OK: auf folgendes geändert:
Delphi-Quellcode:
Damit war der Compiler erstmal beruhigt.
FRSet:=CreateComObject(CLASS_RECORDSET) as _Recordset;
FRSet.CursorLocation:=adUseClient; FRSet.Fields.Append('k',adInteger,0,adFldKeyColumn,0); FRSet.Fields.Append('POSX',adSingle,0,adFldUnspecified,0); FRSet.Fields.Append('POSY',adSingle,0,adFldUnspecified,0); FRSet.Open(EmptyParam,EmptyParam,adOpenUnspecified,adOpenUnspecified,0); Während der Laufzeit erhalte ich dann die Fehlermeldung: "Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereichs oder sind miteinander unvereinbar" Frage wie geht es richtig? |
AW: _Recordset erstellen
In welcher Zeile?
Bitte verwende die DELPHI-Tags, um deinen Code zu formatieren: Den Code markieren und dann auf das Delphi/Sparta-Symbol oben klicken. |
AW: _Recordset erstellen
Delphi-Quellcode:
FRSet.Fields.Append('k',adInteger,0,adFldKeyColumn ,0);
|
AW: _Recordset erstellen
Bearbeite bitte die Tags auch noch im 1. Beitrag.
Danke. |
AW: _Recordset erstellen
![]() Zitat:
|
AW: _Recordset erstellen
Wobei ich aber nicht erkennen kann, warum dort 5 Parameter hin sollen.
Zitat:
Oder sieht das bei dir anders aus? Welche Version dieser API nutzt du denn? (Ich hoffe doch die Richtige/Passende :stupid: ) Unit ADODB2000, ADODBXP, ADODB2010, Data.Win.ADODB oder Winapi.ADOInt?
Delphi-Quellcode:
In Allem nach XP gibt es den 5. Parameter, dann könnte das mit dem NULL oder einem EMPTY eventuell passen.
// *********************************************************************//
// Interface: Fields // Flags: (4544) Dual NonExtensible OleAutomation Dispatchable // GUID: {00001564-0000-0010-8000-00AA006D2EA4} // *********************************************************************// Fields = interface(Fields20) ['{00001564-0000-0010-8000-00AA006D2EA4}'] procedure Append(const Name: WideString; Type_: DataTypeEnum; DefinedSize: Integer; Attrib: FieldAttributeEnum; FieldValue: OleVariant); safecall; procedure Update; safecall; procedure Resync(ResyncValues: ResyncEnum); safecall; procedure CancelUpdate; safecall; end; |
AW: _Recordset erstellen
Vielleicht hatte ich die ersten 2 Zeilen vergessen zu erwähnen:
Delphi-Quellcode:
und dann sieht das so aus in der Winapi.ADOInt:
FRSet:=CreateComObject(CLASS_RECORDSET) as _Recordset;
FRSet.CursorLocation:=adUseClient; FRSet.Fields.Append('k',adInteger,0,adFldKeyColumn,0); FRSet.Fields.Append('POSX',adSingle,0,adFldUnspecified,0); FRSet.Fields.Append('POSY',adSingle,0,adFldUnspecified,0); FRSet.Open(EmptyParam,EmptyParam,adOpenUnspecified,adOpenUnspecified,0);
Delphi-Quellcode:
Fields = interface(Fields20)
['{00000564-0000-0010-8000-00AA006D2EA4}'] procedure Append(const Name: WideString; Type_: DataTypeEnum; DefinedSize: ADO_LONGPTR; Attrib: FieldAttributeEnum; FieldValue: OleVariant); safecall; procedure Update; safecall; procedure Resync(ResyncValues: ResyncEnum); safecall; procedure CancelUpdate; safecall; end; |
AW: _Recordset erstellen
Hallo zusammen,
EmptyParam ist richtig! Danke für die Unterstützung |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:37 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