Announcement

Collapse
No announcement yet.

Zugriff auf Field Object mit ADO

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriff auf Field Object mit ADO

    Hallo,

    noch eine weitere Frage wenn ich direkt auf die ADO Objekte zugreife (also nicht ADO-Express).

    Bei Client-Cursorn vergebe ich den Key direkt mit und nicht über Identity vom SQL Server.

    Der alte Code war so:

    DS_Temp.Edit;
    ADODS_Temp.FieldByName('ID').Value := 1;
    ADODS_Temp.Post;
    ADODS_Temp.Connection := ADOConn;
    ADODS_Temp.UpdateBatch;

    wie kann ich jetzt auf das Feld zugreifen beim direkten Zugriff?
    Ein Code in der Art:

    var<br>
    aField: ADODB_TLB.Field;<br>
    begin<br>
    ... <br>
    aField := Recordset.Fields.Item['OID'];
    aField.Set_Value(10);
    ...<br>

    Bring eine Fehlermeldung "Multiple Step Operation ..."

    Danke für die Hilfe im voraus

  • #2
    Hallo,

    das folgende Beispiel für die MS SQL Server 2000-Datenbank <i>tempdb</i> demonstriert den Zugriff über das Field-Objekt aus der Fields-Kollektion:
    <pre>
    uses ADOInt;

    {
    USE tempdb
    GO
    CREATE TABLE FieldTest (
    RecNo INTEGER NOT NULL PRIMARY KEY,
    Value VARCHAR(10))
    GO
    INSERT INTO FieldTest (RecNo,Value) VALUES (1,'Test')
    GO
    }

    procedure TForm1.Button1Click(Sender: TObject);
    resourcestring
    cCS = 'Provider=SQLOLEDB.1;Integrated Security=SSPI;' +
    'Persist Security Info=False;Initial Catalog=tempdb;'+
    'Data Source=(local)';
    var
    aCon : _Connection;
    aRS : _RecordSet;
    begin
    aCon := CoConnection.Create;
    aCon.CursorLocation := adUseClient;
    aCon.Open(cCS, '', '', adConnectUnspecified);
    try
    aRS := CoRecordSet.Create;
    aRS.CursorLocation := adUseClient;
    try
    aRS.Open('SELECT * FROM dbo.FieldTest', aCon, adOpenStatic, adLockBatchOptimistic, adCmdText);
    aRS.AddNew(EmptyParam, EmptyParam);
    aRS.Fields[0].Value := 2;
    aRS.Fields[1].Value := 'Test 2';
    aRS.Update(EmptyParam, EmptyParam);
    aRS.UpdateBatch(adAffectAll);
    finally
    aRS.Close;
    end;
    finally
    aCon.Close;
    end;
    ShowMessage('Fertig');
    end;
    </pre&gt

    Comment


    • #3
      Hallo,

      wie immer vielen Dank. Vielleicht haben Sie ja in Ihrem Delphi ADO Buch noch Platz um alle Relevanten Funktionen als Referenz aufzuführen wie Sie bei Verwendung der ADO Objekte mit Delphi genutzt weden können

      Comment


      • #4
        Hallo,

        da der Verlag darauf besteht, dass nicht mehr als 500 Seiten im Buch auftauchen (um den Preis niedrig zu halten), ist für eine vollständige Referenz aller Methoden, Eigenschaften und Events der ADO-Objekte kein Platz. Es sind aber auch so sehr viele Beispielprojekte auf der CDROM.

        Die MDAC-Dokumentation von Microsoft ist als Referenz sehr gut geeignet.

        P.S: Im Februar 2002 gibt es wieder die <i>Entwickler-Tage</i>, und dort kümmere ich mich einen ganzen Tag nur um ADO. Auf der CDROM zur Veranstaltung sind meine vollständigen ADO-Unterlagen (HTML) zu finden - das Buch kann aus Platzgründen nur eine Teilmenge davon berücksichtigen.
        &#10

        Comment

        Working...
        X