Bug #10518 | error when using parameter with delphi query component | ||
---|---|---|---|
Submitted: | 10 May 2005 15:38 | Modified: | 3 Apr 2007 10:51 |
Reporter: | karyadi . | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | Connector / ODBC | Severity: | S2 (Serious) |
Version: | MyODBC-3.51.06 | OS: | Windows (Win XP Pro) |
Assigned to: | CPU Architecture: | Any |
[10 May 2005 15:38]
karyadi .
[15 May 2005 8:20]
Vasily Kishkin
Could you write structure of table ? I would like to know a type of field - date1. Do you use "datetime" or "date" type ?
[9 Jun 2005 10:16]
KAZANCI ibrahim
myodbc version. 3.51.11.00 delphi 5, mysql 4.1.10a, Winxp pro i have same similiar error. i'm trying to port my delphi+mssql application to delphi+mysql. i can't send any datetime parameter to any TQuery component in delphi. i used it with other mysql 4 versions. there is no difference. (TEST CASE) CREATE TABLE `message` ( `MessageNo` double NOT NULL default '0', `User` char(8) NOT NULL default '', `StartDate` datetime default NULL, `Readed` char(1) default NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; in delphi drop a tquery component on a form. and connect it to mysql database. query1.Close; query1.SQL.Clear; query1.SQL.Add('SELECT * FROM message'); query1.SQL.Add('WHERE StartDate<=:QDate'); query1.ParamByName('QDate').AsDateTime := MyDate; //--> error here query1.Open; when you run app. it doesnt accept parameter as datetime... // this function shows the code where MyDate is coming from Function TfrmGSifre.MyDate: TDateTime; var Year, Month, Day: Word; begin {Get MySQL Server's System date} With QryGetDate Do try Close; SQL.Clear; SQL.Add('SELECT Date= GetDate()'); Open; DecodeDate(FieldByName('Date').asDateTime, Year, Month, Day); MyDate:= EncodeDate(Year, Month, Day); finally Close; end; end; for information, only way i can find it to work is this: changing parameter type to asstring and changing MyDate to string as follows: query1.ParamByName('QDate').AsString := StringReplace(StringReplace(Datetimetostr(MyDate),'/',DateSeparator,[rfReplaceAl l]),'(','',[rfReplaceAll]); hope this helps but its to will take a huge work for a big application porting from mssql to mysql. i have hundreds of forms and thousands of query.
[9 Jun 2005 10:20]
KAZANCI ibrahim
same query working good with mssql... using parameter asdatetime. other users' problem reports about the same bug : #5395 http://bugs.mysql.com/bug.php?id=5395 #1026 http://bugs.mysql.com/bug.php?id=1026 thanks for help...
[9 Jun 2005 11:49]
KAZANCI ibrahim
no, sorry its not working as i say, i would think it was working but the server i selected was mssql not mysql. So this datetime -> string converting operation is not working on mysql server: query1.ParamByName('QDate').AsString:=StringReplace(StringReplace(Datetimetostr(MyDate),'/',DateSeparator,[rfReplaceAl l]),'(','',[rfReplaceAll]); Again it's working in mssql with this converting too. So i still waiting for solving of this bug.
[15 Jun 2005 23:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[3 Apr 2007 10:51]
Tonci Grgin
This is the duplicate of Bug#18084. Please see available workarounds there.