CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

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

楼主firetop818(用户中文昵称)2005-08-01 12:13:02 在 Delphi / 数据库相关 提问

我想做一个根据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; 问题点数:20、回复次数:5Top

1 楼tjianliang(乡关何处)回复于 2005-08-01 12:47:03 得分 10

赋值的类型不兼容啊,  
  fieldbyname('Chinese').AsString   :=   tmpVar;  
  一个Variant能赋给string吗  
  试试fieldbyname('Chinese').AsVariant   :=   tmpVar;能不能满足你的要求  
  Top

2 楼LocustWei(LocustWei)回复于 2005-08-01 12:56:32 得分 10

fieldbyname('Chinese').AsString   :=   tmpStr;    
  or  
  fieldbyname('Chinese').AsString   :=   tmpVar[count];Top

3 楼firetop818(用户中文昵称)回复于 2005-08-01 12:56:36 得分 0

谢谢,其实改成.AsVariant   :=   tmpvar我也试过,,我在数据库中是把字段‘chinese’设定成alpha,如果那样改,单步调试时就会出现   invalid   value   for   field‘chinese’,照你这样改,那应该把field中的‘chinese’改成什么类型呢!  
  希望再给点提示!谢谢Top

4 楼firetop818(用户中文昵称)回复于 2005-08-01 13:00:59 得分 0

按照LocustWei(LocustWei)   的修改,程序单步调试没有错误  
  只要一成功,马上给分Top

5 楼firetop818(用户中文昵称)回复于 2005-08-01 13:35:28 得分 0

本人在if   gotokey   then的前面加一个编辑框能显示前面的汉字输入,但是却执行完memo1.text   :=   memo1.text+fieldbyname('Chinese').Asstring;   文本框memo1中却没有显示相应的数据库中内容,if   otokey   then   也执行了,这会是什么原因呢Top

相关问题

  • 怎样判断编辑框中是否输入的是汉字?
  • 有关编辑框中汉字显示的问题?
  • 有关编辑框中汉字显示的问题?
  • 怎样把编辑框中汉字赋给数组
  • X代表任何汉字
  • 急!在编辑框里如何根据光标的位置得到光标前的一个字符或汉字???
  • 我可以用gedit编辑汉字,但Word不能显示汉字???
  • 汉字列表生成和汉字首字母查询问题
  • 用汉字做表名好不好?
  • 请教:汉字的16进制表示

关键词

  • 汉字
  • 字段
  • tmpvar
  • trans
  • chinese
  • 问题
  • variant
  • edit
  • len
  • count

得分解答快速导航

  • 帖主:firetop818
  • tjianliang
  • LocustWei

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo