Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO TADOQuery Parameter funktioniert nicht (https://www.delphipraxis.net/137546-ado-tadoquery-parameter-funktioniert-nicht.html)

Peter60 23. Jul 2009 09:03

Datenbank: Visual FoxPro Tabellen dbf • Zugriff über: ADOConnection

ADO TADOQuery Parameter funktioniert nicht
 
Hallo Zusammen, ich stehe vor einem Problem ich mochte unter Delphi 2009
eine BDE Anwendung auf ADO Zugriff umstellen.
Aber das ganze Klappt nicht so wie es soll.
Ich greife auf lokale FoxPro Tabellen zu was unter BDE ganz gut klappt.
Bei der Umstellung auf ADO bin auf das Problem
gestoßen das keine Parameter übernommen werden.
Hier ein Beispiel

Das funktioniert:
Delphi-Quellcode:
  ADOQuery.Close;
  ADOQuery.Active := false;
  ADOQuery.SQL.Clear;
  ADOQuery.SQL.Add('Update mde008 set Status = 2');
  ADOQuery.ExecSQL;

Das nicht
Delphi-Quellcode:
  ADOQuery.Close;
  ADOQuery.Active := false;
  ADOQuery.SQL.Clear;
  ADOQuery.SQL.Add('Update mde008 set Status = :Status');
  ADOQuery.Parameters.ParamByName('Status').DataType := ftInteger;
  ADOQuery.Parameters.ParamByName('Status').Value := 3;
  ADOQuery.ExecSQL;
Vielleicht kann mir jemand weiterhelfen
:coder2:

[edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit]

Bernhard Geyer 23. Jul 2009 09:08

Re: ADO TADOQuery Parameter funktioniert nicht
 
Wie ist die Fehlermeldung?

Was hat die
Delphi-Quellcode:
ADOQuery.Parameters.Count
für einen Wert nachdem du die Query zugewiesen hast?

mkinzler 23. Jul 2009 09:09

Re: ADO TADOQuery Parameter funktioniert nicht
 
Ist .ParamCheck True?

Peter60 23. Jul 2009 09:13

Re: ADO TADOQuery Parameter funktioniert nicht
 
Vielen Dank für die schnellen Antworten!

Also Parameters.Count gibt 1 zurück
Paramscheck = true

Keine Fehlermeldung

mkinzler 23. Jul 2009 09:16

Re: ADO TADOQuery Parameter funktioniert nicht
 
Versuch mal:
Delphi-Quellcode:
ADOQuery.SQL.Text := 'Update mde008 set Status = ?Status;');

Peter60 23. Jul 2009 09:18

Re: ADO TADOQuery Parameter funktioniert nicht
 
Da kommt Fehlermeldung ADOQuery Parameter 'Status' nicht gefunden!

Bernhard Geyer 23. Jul 2009 09:23

Re: ADO TADOQuery Parameter funktioniert nicht
 
Und welcher Fehler kommt bei deinem orginal Versuch?

Peter60 23. Jul 2009 09:31

Re: ADO TADOQuery Parameter funktioniert nicht
 
Das das Feld Status keine NULL Werte akzeptiert. Liegt aber ander Tabellen definition.

Ich habe gerade noch in anderen Foren gesucht, das Problem scheinen mehrere zu haben.
Ist wohl ein Bug in der ADO?

shmia 23. Jul 2009 09:45

Re: ADO TADOQuery Parameter funktioniert nicht
 
Zitat:

Zitat von Peter60
Ist wohl ein Bug in der ADO?

Nein, eher ein Problem der darunterliegenden Treiberschichten.
Ich nehme mal an, du verwendest einen ODBC-Treiber.
Versuche doch mal diesen OLE-DB Provider:
http://www.microsoft.com/downloads/d...A-95A3289C5FD4

Peter60 23. Jul 2009 10:15

Re: ADO TADOQuery Parameter funktioniert nicht
 
Treiber runtergeladen und installiert PC neu gestartet Delphi und Projekt geladen und es funktioniert!

Vieeeeeeeelen Dank!!!!
:bounce2:

mkinzler 23. Jul 2009 10:18

Re: ADO TADOQuery Parameter funktioniert nicht
 
Bleibt nur die Frage, wenn schon Umstelleung warum dann nicht gleich richtig ( auf ein richtiges DBMS)?

Peter60 23. Jul 2009 10:28

Re: ADO TADOQuery Parameter funktioniert nicht
 
Es handelt sich um eine Software die Mobil eingesetzt wird. Sie hat nur relative kleine Datenbestände und soll auch leistungschwachen IPC arbeiten. Außerdem hat es sich seit Jahren bewährt!
Die gesammelten Daten werden dann an einer Sammelstelle übergeben und in eine MySQL DB eingelesen und weiter verarbeitet.

Gruß
Peter

mkinzler 23. Jul 2009 10:36

Re: ADO TADOQuery Parameter funktioniert nicht
 
Ich würde lokal ein embedded Version des selben Systems einsetzen


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 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