使用ADOQuery连mssql,用mydac从mysql中读取数据写入到mssql中,tinyint类型的字段不能正常写入?

51one 2007-03-27 11:49:30
使用ADOQuery,Adoconnection连mssql,用mydac从mysql中读取数据写入到mssql中。
问题一:
为什么char,int等类型都可以正常写入,但 mysql中的tinyint类型的字段就是不可以。
//这个正常,mysql中的字段name 是char 类型,mssql中的username是nchar
dm.ADOQuery1.FieldByName('name').AsString:=fieldbyname('username').Asstring;
//下面这一句错,不能写入 mysql 中的gender 是 tinyint 类型,mssql中的gen是int
dm.ADOQuery1.FieldByName('gender').asinteger:=fieldbyname('gen').asinteger;

自己尝试着换成
dm.ADOQuery1.FieldByName('gender').asstring:=booltostr(fieldbyname('gender').asboolean);
可以写入。
但写到mssql中后,只有-1和0了,这显然是错误的。

请问该怎么样才能正常写入?

问题二: 经测试,好像不可以使用dbexpress中的sqlconnection,sqlquery,而只能用adoconnection,adoquery,这是为什么?

谢谢!
...全文
305 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
51one 2007-03-28
  • 打赏
  • 举报
回复
顶一下!
51one 2007-03-27
  • 打赏
  • 举报
回复
谢谢楼主二位。问题二明白了。

现在就是问题一,网上查了一下,c中是用getbyte来取tinyint值,

就是不知道这个该怎么办
proer9988 2007-03-27
  • 打赏
  • 举报
回复
dbexpress是单向的,只能读不能写

在客户端对DB进行编辑.可以借据TSQLClientDataSet(用法和TClientDataSet类似)
十月鹰飞 2007-03-27
  • 打赏
  • 举报
回复
问题一不清楚,容有时间测试一下再说

问题二可能是要从BORLAND公司网站下载补丁后才可以。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧