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

菜鸟问题:我用的query_datasource+dbgrid 显示数据为何?

楼主yyl_deep()2006-06-04 13:06:55 在 Delphi / 数据库相关 提问

我用的数据库是DBF的用BDE引擎,使用的别名指向数据库所在文件夹,用的query+datasource+dbgrid   显示数据为何   在dbgrid中标题栏中显示的有的字段名是乱码,有的字段是正常.执行到这一步时  
  if   (query1.Locate('病人姓名;性别;年龄',vararrayof([name1,sex1,age1]),[loCaseInsensitive]))   then    
  出错,说是无法找到"病人姓名"字段,而数据库中确有这一字段.在dbgrid控件标题栏上这一字段是乱码.用TABLE控件时好用.  
  请大家帮忙解答, 问题点数:100、回复次数:14Top

1 楼GARNETT2183(KingWolves (http://kevin-lu.blogspot.com))回复于 2006-06-04 13:16:46 得分 10

应该是字体集的问题,Delphi不支持UNICODE,而BDF的数据库不知道支持不支持,所以会有乱码产生,建意用英文字段...Top

2 楼yyl_deep()回复于 2006-06-04 13:38:17 得分 0

但是我用TABLE的时候就没事呀,现在用query设置一些查询条件,就出现这个问题了,还有没有没有不用改成英文字段名的方法呢?因为我的字段很我给用户用怕他们有的不懂英文.Top

3 楼deansroom(丁樵方玉)回复于 2006-06-04 13:47:01 得分 10

唉   觉得不用那么多但是   字段名设置为中文本来就是给自己找不必要的麻烦Top

4 楼wudi_1982(向伴水学习|胃出血,住院中)回复于 2006-06-04 13:48:23 得分 10

但是我用TABLE的时候就没事呀,现在用query设置一些查询条件,就出现这个问题了,还有没有没有不用改成英文字段名的方法呢?因为我的字段很我给用户用怕他们有的不懂英文.  
  ------------------------------------------------------------------------------  
  没见到你的程序,只能怀疑是字符集这类的问题。  
  建议你用英文字段名,至于看不懂英文的问题,你可以在查询显示的dbgrid中显示中文啊,很多办法的,例如你查询select   a   as   '中文'   from   tablenameTop

5 楼yyl_deep()回复于 2006-06-04 13:49:41 得分 0

就不能有别的办法了吗?在线等待Top

6 楼liangqingzhi(老之)回复于 2006-06-04 13:51:51 得分 10

中文字段名没有英文字段名稳定,最好用英文。  
  参看这个关于中文字段名的讨论:  
  http://community.csdn.net/Expert/topic/4630/4630698.xml?temp=.8091547Top

7 楼yyl_deep()回复于 2006-06-04 13:53:41 得分 0

请问wudi_1982   兄     我要显示所有字段怎么将英文字段名换成中文的呢.  
  我的sql代码是:  
  Select  
  bafirst.*  
  from   bafirst.dbf  
  as   bafirst  
  where   (主治医师=:i)  
  Top

8 楼Hank(星星农场)回复于 2006-06-04 14:18:57 得分 10

不要使用中文作为字段名称,这里面的问题本身就稀奇古怪。  
   
  通过Delphi的Pradox建立的数据库,如果字段名称是中文的,即使直接通过Delphi打开,那么第一打开是正常的,第二次可能就是乱码,第三次可能又正常了。要命的是通过SQL   Explor打开看可能又是好的,可能2000下没问题,98下全是乱码。  
  要命的是连Borland都说不清到底问题出在那里。一般说法是字符集的问题Top

9 楼GARNETT2183(KingWolves (http://kevin-lu.blogspot.com))回复于 2006-06-04 14:21:48 得分 10

因为VCL本身不支持UNICODE的原因....Top

10 楼happyggy(Delphi<-&&->java)回复于 2006-06-04 17:48:46 得分 0

一切都有办法,只不过做起来麻烦罢了  
  LZ   太懒了Top

11 楼yyl_deep()回复于 2006-06-04 18:18:43 得分 0

我现在已经换成英文字段了.不过在dbgrid中下面的方法显示中文怎么出错了呢.再帮助看下了.  
  Select  
  depart,  
  number,  
  cjdate,  
  doctor,  
  name,  
  sex,  
  age,  
  job,  
  addr,  
  phone,  
  say,  
  bs,  
  tgcheck,  
  serxian,  
  maixian,  
  xcheck,  
  bzanaly,  
  zd,  
  zzd,  
  zx,  
  czd,  
  deal,  
  list,  
  docsay  
  as  
  科别,病案号,初诊日期,主治医师,病人姓名,性别,年龄,职业,住址,电话,  
  主诉,病史,体格检查,舌象,脉象,相关检查,辩证分析,诊断,中医诊断,证型,西医诊断,  
  治法,方药,医嘱  
  from   bafirst.dbf  
  where   (Doctor=:i)Top

12 楼grjs2004(在岸边钓不到大鱼,只好下水去摸虾米!)回复于 2006-06-04 19:21:24 得分 30

Select  
  depart   as   科别,  
  number   as   病案号,  
  cjdate   as   初诊日期,  
  doctor   as   主治医师,  
  name   as   病人姓名,  
  ......  
  from   bafirst.dbf  
  where   (Doctor=:i)Top

13 楼yyl_deep()回复于 2006-06-04 20:27:53 得分 0

用了以上所有方法.字段已改为英文的.在没用这Select  
  depart   as   科别,  
  number   as   病案号,  
  cjdate   as   初诊日期,  
  doctor   as   主治医师,  
  name   as   病人姓名,  
  ......  
  from   bafirst.dbf  
  where   (Doctor=:i)  
  方法前都好用,用了这方法后问题又回来了,还是乱码加找不到记录.怎么办呢.Top

14 楼Hank(星星农场)回复于 2006-06-04 22:57:54 得分 10

1、这么多AS当然找不到记录了,要改字段还是彻底点  
  2、看看你的ADO版本,现在可是2.8了,如果你是早期的,要更新一下Top

相关问题

关键词

得分解答快速导航

  • 帖主:yyl_deep
  • GARNETT2183
  • deansroom
  • wudi_1982
  • liangqingzhi
  • Hank
  • GARNETT2183
  • grjs2004
  • Hank

相关链接

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

广告也精彩

反馈

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