AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fehler bei ADOTable.Post
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei ADOTable.Post

Offene Frage von "arnof"
Ein Thema von Detlef · begonnen am 10. Jan 2005 · letzter Beitrag vom 7. Jun 2013
Antwort Antwort
Seite 1 von 2  1 2      
Detlef

Registriert seit: 7. Sep 2003
Ort: Suhl
25 Beiträge
 
Delphi 7 Enterprise
 
#1

Fehler bei ADOTable.Post

  Alt 10. Jan 2005, 18:38
Hallo Delphianer,
wenn ich in einem Zyklus mehrere Sätze in eine MDB-Tabelle schreibe
bekomme ich beim Post des 2. Satzes die Fehlermeldung:

'Fehler bei einem aus mehreren Schritten bestehenden Vorgang. Prüfen
Sie die einzelnen Statuswerte.'
Der Code sieht etwa so aus:

Delphi-Quellcode:
while not adodataset1.Eof do begin
      buchform.adotable1.append;
      buchform.ADOTable1['KNR']:=adodataset1['KNR'];
      tempbetrag:=adodataset1['Betrag']*100;
      strintdm(tempbetrag,stempbetrag,0);
      buchform.ADOTable1['Betrag']:=stempbetrag;
      buchform.ADOTable1['Empf']:=adodataset1['Empf'];
      buchform.ADOTable1['Text']:=adodataset1['Text'];
      buchform.ADOTable1.Post;
      adodataset1.next;
   end;
Die Tabellendefinition:

Delphi-Quellcode:
object ADODataSet1KNR: TStringField
  DisplayWidth = 40
  FieldName = 'KNR'
  Size = 40
end
object ADODataSet1Betrag: TCurrencyField
  FieldName = 'Betrag'
end
object ADODataSet1Empf: TWideStringField
  FieldName = 'Empf'
  Size = 50
end
object ADODataSet1Text: TWideStringField
  FieldName = 'Text'
  Size = 50

end
Der erste Satz wird ordnungsgemäß gespeichert. Erst ab dem 2.
passierts dann.

Wer hat einen Tip ?

Gruß Detlef

[edit=MrSpock]Code Tags eingefügt. Mfg, MrSpock[/edit]
  Mit Zitat antworten Zitat
Matt

Registriert seit: 13. Nov 2003
Ort: Hamburg
212 Beiträge
 
#2

Re: Fehler bei ADOTable.Post

  Alt 11. Jan 2005, 13:44
Die Fehlermeldung kann ziemlich viel bedeuten, ich kenne Sie im Zusammenhang mit ASP und ADO und ich HASSE sie, weil so nichts aussagend. Ich würde ADO veranlassen dir eine konkrete Fehlermeldung zu generieren. Habe hier im Forum diesen Beitrag gefunden. Würde mal versuchen so den Fehler genauer zu betiteln.

ADO-Fehler (bestehend aus mehreren Schritten) anzeigen
  Mit Zitat antworten Zitat
Detlef

Registriert seit: 7. Sep 2003
Ort: Suhl
25 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Fehler bei ADOTable.Post

  Alt 11. Jan 2005, 13:56
Hallo Matt,
habe das nun gemacht und bekomme Zusatzinfo

#-2147217887 Microsoft Cursor Engine.

Wo finde ich dazu etwas?

Detlef
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Fehler bei ADOTable.Post

  Alt 11. Jan 2005, 14:12
Hallo,

so ganz schlau werde ich aus Deinem Code nicht. Was mir aber aufgefallen ist, dass Du das Dataset in einer Schleife durchläufst, die Daten aber mit Append in die Tabelle schreibst???? Noch dazu, was soll das Dataset.Next am Schluß???

Lasse einmal die While-Schleife und das Next weg, dann sollte es gehen. Ansonsten würde ich Dir eine Query empfehlen und die Daten mit "INSERT INTO" in die Tabelle schreiben.
  Mit Zitat antworten Zitat
Matt

Registriert seit: 13. Nov 2003
Ort: Hamburg
212 Beiträge
 
#5

Re: Fehler bei ADOTable.Post

  Alt 11. Jan 2005, 14:25
Hast Du eventuell bei deiner ADO-Connection etwas verändert bei "CursorLocation" z.B.?
Steht die vielleicht auf "clUseServer"?

Nimm mal zum testen alle Default-Werte der Connection!

Gruß Matt
  Mit Zitat antworten Zitat
Detlef

Registriert seit: 7. Sep 2003
Ort: Suhl
25 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Fehler bei ADOTable.Post

  Alt 12. Jan 2005, 10:21
Hallo Gollum,
ich habe ein Dataset, dessen Sätze ich in die TABLE übernehmen möchte.
Deshalb die Schleife und das DATASET.NEXT. Normalerweise mache ich solche Dinge (erfassen und datensatzweise in eine TABLE übernehemen)
ja auch und es klappt. Nur in diesem Fall passierts beim Post oder
beim Append des nächsten Satzes in der Schleife. Ich habe schon auf
AUTOINC-Feld getippt oder auf das Betragsfeld im BCD-Format. Aber
richtig eingrenzen kann ich es nicht.
Hallo Matt,
ich benutze CONNECTIONSTRING mit
CURSOR-Location=clclient
Cursortype=ctkeyset.
Habe nichts an den Standards geändert.

Ich bin momentan

Rudi Ratlos

Detlef
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Fehler bei ADOTable.Post

  Alt 12. Jan 2005, 12:02
Du verwendest als Feldnamen einen Bezeichner ('TEXT'). Eventuell hängt sich die Jet an dieser Stelle auf.

Text ist ein Feldtyp in der MS Jet.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Detlef

Registriert seit: 7. Sep 2003
Ort: Suhl
25 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Fehler bei ADOTable.Post

  Alt 15. Jan 2005, 12:45
Ist leider mit anderem Feldnamen auch nicht besser.
Schade (hatte so gehofft)
Detlef
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#9

Re: Fehler bei ADOTable.Post

  Alt 17. Jan 2005, 09:07
Hallo,

ich habe mir Deinen Code noch einmal angeschaut und dabei ist mir aufgefallen, dass Du in Deinem Beispiel die Felder und nicht die Feldinhalte zuweist. Vielleicht hilft es, wenn Du Deinen Code folgendermassen umänderst:
Delphi-Quellcode:
while not adodataset1.Eof do
begin
  buchform.adotable1.append;
  buchform.ADOTable1['KNR'].AsString:=adodataset1['KNR'].AsString;
  tempbetrag:=adodataset1['Betrag'].AsFloat*100;
  strintdm(tempbetrag,stempbetrag,0);
  buchform.ADOTable1['Betrag'].AsFloat:=stempbetrag;
  buchform.ADOTable1['Empf'].AsString:=adodataset1['Empf'].AsString;
  buchform.ADOTable1['Text'].AsString:=adodataset1['Text'].AsString;
  buchform.ADOTable1.Post;
  adodataset1.next;
end;
[edit]
Da ich nicht sicher weiss, ob obiges Beispiel funktioniert, könntest Du noch evtl. folgendes probieren:
Delphi-Quellcode:
  ...
  buchform.ADOTable1.FieldByName('KNR').AsString:=adodataset1.FieldByName('KNR').AsString;
  ....
[/edit]
  Mit Zitat antworten Zitat
Detlef

Registriert seit: 7. Sep 2003
Ort: Suhl
25 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Fehler bei ADOTable.Post

  Alt 22. Jan 2005, 20:43
Hallo Gollum,

Dein letztes Beispiel hat dahingehend geholfen, daß es nun erst beim
dritten Satz bumst. Das ist ja interessant!
Kann so etwas auch mit dem Autoincrementfeld etwas zu tun haben?
Ich stehe so richtig auf dem Schlauch!

Detlef
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz