关于根据编辑框中汉字查表问题

firetop818 2005-08-01 12:13:02
我想做一个根据Edit中的汉字来查询汉字对应的字段,结果在 fieldbyname('Chinese').AsString := tmpVar提示:invalid variant type conversion 请大家帮我看一下问题所在!(我在数据库中定义字段chinese为Alpha类型

代码如下:
procedure TForm1.button1Click(Sender: TObject);
var
len ,count,i:integer;
tmpVar :Variant;
trans,tmpStr :Widestring;

begin
with table1 do
begin
table1.open();
indexfieldnames := 'Chinese';
setkey;
i := 1;
count := 1;
trans := Edit1.text;
len := length(trans);
tmpVar := VarArrayCreate([1,1],varVariant); //创建一个变量数组
while (i<len) do
begin
tmpStr := Copy(trans,i,2);
tmpVar[Count]:= tmpstr;
Inc(count);
VarArrayRedim(tmpVar,count);
i := i + 2;
fieldbyname('Chinese').AsString := tmpVar;
if gotokey then
memo1.text := memo1.text+fieldbyname('Address').Asstring;
end;
end;
end;
...全文
74 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
firetop818 2005-08-01
  • 打赏
  • 举报
回复
谢谢,其实改成.AsVariant := tmpvar我也试过,,我在数据库中是把字段‘chinese’设定成alpha,如果那样改,单步调试时就会出现 invalid value for field‘chinese’,照你这样改,那应该把field中的‘chinese’改成什么类型呢!
希望再给点提示!谢谢
LocustWei 2005-08-01
  • 打赏
  • 举报
回复
fieldbyname('Chinese').AsString := tmpStr;
or
fieldbyname('Chinese').AsString := tmpVar[count];
亮剑_ 2005-08-01
  • 打赏
  • 举报
回复
赋值的类型不兼容啊,
fieldbyname('Chinese').AsString := tmpVar;
一个Variant能赋给string吗
试试fieldbyname('Chinese').AsVariant := tmpVar;能不能满足你的要求
firetop818 2005-08-01
  • 打赏
  • 举报
回复
本人在if gotokey then的前面加一个编辑框能显示前面的汉字输入,但是却执行完memo1.text := memo1.text+fieldbyname('Chinese').Asstring; 文本框memo1中却没有显示相应的数据库中内容,if otokey then 也执行了,这会是什么原因呢
firetop818 2005-08-01
  • 打赏
  • 举报
回复
按照LocustWei(LocustWei) 的修改,程序单步调试没有错误
只要一成功,马上给分

2,498

社区成员

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

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