adotable1.append;
adotable1.fieldbyname('name').asstring:='edit.text';
adotable1.fieldbyname('date').asdatetime:='DateTimePicker1.Date';
adotable1.post;
我是通过ADO再通过ODBC连接MYSQL的。
当运行时出现:insert into test values('dss','20031221')出错。他的意思就是把2003-12-21日期通过delphi变成了20031221 这样mysql就不认识了。
但是我通过BDE再通过ODBC连接就可以。但是我都是用ado做的。不想用BDE。
所以我想问问大家。我要怎么办法呢。是升级MYSQL的驱动程序还是。有什么其他方法呢。谁用过MYSQL+DELPHI。请帮帮我啊
12 个解决方案
#1
MYSQL的日期类型格式为;'yyyy-mm-dd hh:mm:ss',这样插入肯定不行的,
FormatDateTime('yyyy-mm-dd hh:mm:ss',DateTimePicker1.DateTime)
然后再插入。
FormatDateTime('yyyy-mm-dd hh:mm:ss',DateTimePicker1.DateTime)
然后再插入。
#2
adotable1.fieldbyname('date').asdatetime:='DateTimePicker1.Date'
改成
adotable1.fieldbyname('date').value:=DateTimePicker1.Date
改成
adotable1.fieldbyname('date').value:=DateTimePicker1.Date
#3
'DateTimePicker1.Date'
加引号干什么?
'20031221'当然不是SQL语法中的目期类型。当然不行。
加引号干什么?
'20031221'当然不是SQL语法中的目期类型。当然不行。
#4
我觉得程序里存时间,然后取出来的时候再转变回去,被直接存时间要省事的多,当然存的时候要做处理,这样才能比较。
#5
兄弟们,上面的我刚试过还是不行啊。他还是自动转化成如:20031212,他好象是ADOODBC处理的不是我能处理了的,因为我用BDE ODBC连接就可以,但是BDE打包的时候要把那个东东带上啊麻烦。所以我现在想问问谁知道那里有MYSQL 最新的驱动程序下载(支持ADO ODBC)我现在的好象是3.23.30版,谁有4.0.版啊。急哦。请帮帮啊
而且我用adotable1.delete 也出错。只要字段有时间,错误:20031212 ,总之是时间错误。
我要最新的MYSQL 最新的驱动哦啊
而且我用adotable1.delete 也出错。只要字段有时间,错误:20031212 ,总之是时间错误。
我要最新的MYSQL 最新的驱动哦啊
#6
yyyyMMdd是国际日期格式,可能是ADO自动转换的。
#7
不知道谁用过delphi跟MYSQL组合没有。用过的人应该会遇到这样的问题。
环境是:我通过ADOConnection 再通过ODBC连接MYSQL。如果通过BDE 再通过ODBC连接,下面的没有问题。
adotable1.append;
adotable1.fieldbyname('cc_name').asstring:=edit1.text;
adotable1.post;
这样也出错。我开始还以为只是时间问题呢。
保存图片
if Assigned(Image1.Picture.Graphic) then
begin
myjpeg:=tjpegimage.Create; //保存图形文件
myjpeg.Assign(image1.Picture.Graphic);
ms:=tmemorystream.Create;
myjpeg.SaveToStream(ms);
ms.Position:=0;
TBlobField(Table1.FieldbyName('b')).LoadFromStream(MS);
myjpeg.Free;
ms.Free;
end;
也出错。如果不是图形我还可以辛苦一下通过 “insert into base_table valuse(edit1.text,......)”这样。但是图形呢。怎么能通过insert into ...这样呢。
我又不想通过BDE来连接。高手救命啊。马上给分
环境是:我通过ADOConnection 再通过ODBC连接MYSQL。如果通过BDE 再通过ODBC连接,下面的没有问题。
adotable1.append;
adotable1.fieldbyname('cc_name').asstring:=edit1.text;
adotable1.post;
这样也出错。我开始还以为只是时间问题呢。
保存图片
if Assigned(Image1.Picture.Graphic) then
begin
myjpeg:=tjpegimage.Create; //保存图形文件
myjpeg.Assign(image1.Picture.Graphic);
ms:=tmemorystream.Create;
myjpeg.SaveToStream(ms);
ms.Position:=0;
TBlobField(Table1.FieldbyName('b')).LoadFromStream(MS);
myjpeg.Free;
ms.Free;
end;
也出错。如果不是图形我还可以辛苦一下通过 “insert into base_table valuse(edit1.text,......)”这样。但是图形呢。怎么能通过insert into ...这样呢。
我又不想通过BDE来连接。高手救命啊。马上给分
#8
发到你信箱
#9
我前段时间已经做过delphi通过odbc连接mysql,没任何问题,是不是你自己的问题?
试一下
adotable1.append;
adotable1.fieldbyname('cc_name').value:=trim(edit1.text);
adotable1.post;
试一下
adotable1.append;
adotable1.fieldbyname('cc_name').value:=trim(edit1.text);
adotable1.post;
#10
当运行时出现:insert into test values('dss','20031221')出错。他的意思就是把2003-12-21日期通过delphi变成了20031221 这样mysql就不认识了。
----------------------------------------------
你这句出错提示已经错啦,试试:insert into test ('cc_name') values ('dss')
还要注意其它值允不允许插入空值啊
----------------------------------------------
你这句出错提示已经错啦,试试:insert into test ('cc_name') values ('dss')
还要注意其它值允不允许插入空值啊
#11
搞不懂,既然用odbc,干吗还有ADO控件??
#12
'DateTimePicker1.Date'
加引号干什么?
'20031221'当然不是SQL语法中的目期类型。当然不行。
加引号干什么?
'20031221'当然不是SQL语法中的目期类型。当然不行。
#1
MYSQL的日期类型格式为;'yyyy-mm-dd hh:mm:ss',这样插入肯定不行的,
FormatDateTime('yyyy-mm-dd hh:mm:ss',DateTimePicker1.DateTime)
然后再插入。
FormatDateTime('yyyy-mm-dd hh:mm:ss',DateTimePicker1.DateTime)
然后再插入。
#2
adotable1.fieldbyname('date').asdatetime:='DateTimePicker1.Date'
改成
adotable1.fieldbyname('date').value:=DateTimePicker1.Date
改成
adotable1.fieldbyname('date').value:=DateTimePicker1.Date
#3
'DateTimePicker1.Date'
加引号干什么?
'20031221'当然不是SQL语法中的目期类型。当然不行。
加引号干什么?
'20031221'当然不是SQL语法中的目期类型。当然不行。
#4
我觉得程序里存时间,然后取出来的时候再转变回去,被直接存时间要省事的多,当然存的时候要做处理,这样才能比较。
#5
兄弟们,上面的我刚试过还是不行啊。他还是自动转化成如:20031212,他好象是ADOODBC处理的不是我能处理了的,因为我用BDE ODBC连接就可以,但是BDE打包的时候要把那个东东带上啊麻烦。所以我现在想问问谁知道那里有MYSQL 最新的驱动程序下载(支持ADO ODBC)我现在的好象是3.23.30版,谁有4.0.版啊。急哦。请帮帮啊
而且我用adotable1.delete 也出错。只要字段有时间,错误:20031212 ,总之是时间错误。
我要最新的MYSQL 最新的驱动哦啊
而且我用adotable1.delete 也出错。只要字段有时间,错误:20031212 ,总之是时间错误。
我要最新的MYSQL 最新的驱动哦啊
#6
yyyyMMdd是国际日期格式,可能是ADO自动转换的。
#7
不知道谁用过delphi跟MYSQL组合没有。用过的人应该会遇到这样的问题。
环境是:我通过ADOConnection 再通过ODBC连接MYSQL。如果通过BDE 再通过ODBC连接,下面的没有问题。
adotable1.append;
adotable1.fieldbyname('cc_name').asstring:=edit1.text;
adotable1.post;
这样也出错。我开始还以为只是时间问题呢。
保存图片
if Assigned(Image1.Picture.Graphic) then
begin
myjpeg:=tjpegimage.Create; //保存图形文件
myjpeg.Assign(image1.Picture.Graphic);
ms:=tmemorystream.Create;
myjpeg.SaveToStream(ms);
ms.Position:=0;
TBlobField(Table1.FieldbyName('b')).LoadFromStream(MS);
myjpeg.Free;
ms.Free;
end;
也出错。如果不是图形我还可以辛苦一下通过 “insert into base_table valuse(edit1.text,......)”这样。但是图形呢。怎么能通过insert into ...这样呢。
我又不想通过BDE来连接。高手救命啊。马上给分
环境是:我通过ADOConnection 再通过ODBC连接MYSQL。如果通过BDE 再通过ODBC连接,下面的没有问题。
adotable1.append;
adotable1.fieldbyname('cc_name').asstring:=edit1.text;
adotable1.post;
这样也出错。我开始还以为只是时间问题呢。
保存图片
if Assigned(Image1.Picture.Graphic) then
begin
myjpeg:=tjpegimage.Create; //保存图形文件
myjpeg.Assign(image1.Picture.Graphic);
ms:=tmemorystream.Create;
myjpeg.SaveToStream(ms);
ms.Position:=0;
TBlobField(Table1.FieldbyName('b')).LoadFromStream(MS);
myjpeg.Free;
ms.Free;
end;
也出错。如果不是图形我还可以辛苦一下通过 “insert into base_table valuse(edit1.text,......)”这样。但是图形呢。怎么能通过insert into ...这样呢。
我又不想通过BDE来连接。高手救命啊。马上给分
#8
发到你信箱
#9
我前段时间已经做过delphi通过odbc连接mysql,没任何问题,是不是你自己的问题?
试一下
adotable1.append;
adotable1.fieldbyname('cc_name').value:=trim(edit1.text);
adotable1.post;
试一下
adotable1.append;
adotable1.fieldbyname('cc_name').value:=trim(edit1.text);
adotable1.post;
#10
当运行时出现:insert into test values('dss','20031221')出错。他的意思就是把2003-12-21日期通过delphi变成了20031221 这样mysql就不认识了。
----------------------------------------------
你这句出错提示已经错啦,试试:insert into test ('cc_name') values ('dss')
还要注意其它值允不允许插入空值啊
----------------------------------------------
你这句出错提示已经错啦,试试:insert into test ('cc_name') values ('dss')
还要注意其它值允不允许插入空值啊
#11
搞不懂,既然用odbc,干吗还有ADO控件??
#12
'DateTimePicker1.Date'
加引号干什么?
'20031221'当然不是SQL语法中的目期类型。当然不行。
加引号干什么?
'20031221'当然不是SQL语法中的目期类型。当然不行。