select * from table where……? ( 积分: 50 )

  • 主题发起人 主题发起人 start_abc
  • 开始时间 开始时间
S

start_abc

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是sysbase&nbsp;<br>&nbsp;&nbsp;执行&nbsp;&nbsp;&nbsp;Select&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;From&nbsp;&nbsp;&nbsp;Table1&nbsp;&nbsp;&nbsp;Where&nbsp;&nbsp;&nbsp;field1&nbsp;&nbsp;&nbsp;like&nbsp;&nbsp;&nbsp;'%中文%'&nbsp;<br>返回的结果集是空的,但Field1有好多是&quot;中文&quot;的数据,如何解决?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>&nbsp;(&nbsp;在.Net中找不到记录,拿到pb环境中可以&nbsp;&nbsp;&nbsp;为什么啊&nbsp;&nbsp;&nbsp;?&nbsp;)
 
帮顶一下,接个分
 
(1)找到一条中文的纪录,直接用=号试试:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Select&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;From&nbsp;&nbsp;&nbsp;Table1&nbsp;&nbsp;&nbsp;Where&nbsp;&nbsp;&nbsp;field1&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;'中文'<br>(2)%符号的问题吧,换成*号试试
 
你用TQuery吗?<br>想用Query1.RecordCount查出一张表里的数据,显示在一个Label中,初始化界面后显示的数字却是“-1”,<br>你可以在這語句前加上&nbsp;query1.first;&nbsp;query1.last;就ok&nbsp;=&gt;&nbsp;BDE的问题!!!
 
执行&nbsp;&nbsp;&nbsp;Select&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;From&nbsp;&nbsp;&nbsp;Table1&nbsp;&nbsp;&nbsp;Where&nbsp;&nbsp;&nbsp;field1&nbsp;&nbsp;&nbsp;like&nbsp;&nbsp;&nbsp;'%abcd%'&nbsp;<br>&nbsp;&nbsp;能返回的结果集<br>就是&nbsp;&nbsp;&nbsp;like&nbsp;&nbsp;&nbsp;'%中文%'&nbsp;&nbsp;&nbsp;&nbsp;或是&nbsp;='中文'<br>&nbsp;&nbsp;&nbsp;就不能返回的结果集
 
我用的ACCESS数据库可以
 
用sql&nbsp;2000数据库也可以的
 
数据库是sysbase&nbsp;<br>&nbsp;&nbsp;执行&nbsp;&nbsp;&nbsp;Select&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;From&nbsp;&nbsp;&nbsp;Table1&nbsp;&nbsp;&nbsp;Where&nbsp;&nbsp;&nbsp;field1&nbsp;&nbsp;&nbsp;like&nbsp;&nbsp;&nbsp;'%中文%'&nbsp;<br>返回的结果集是空的,但Field1有好多是&quot;中文&quot;的数据,如何解决?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>&nbsp;(&nbsp;在.Net中找不到记录,拿到pb环境中可以&nbsp;&nbsp;&nbsp;为什么啊&nbsp;&nbsp;&nbsp;?&nbsp;)<br>谁能告诉我?
 
是不是代码页的问题?查询一下英文,如:“%abc%”,效果如何呢?
 
执行&nbsp;&nbsp;&nbsp;Select&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;From&nbsp;&nbsp;&nbsp;Table1&nbsp;&nbsp;&nbsp;Where&nbsp;&nbsp;&nbsp;field1&nbsp;&nbsp;&nbsp;like&nbsp;&nbsp;&nbsp;'%abcd%'&nbsp;<br>&nbsp;&nbsp;能返回的结果集<br>就是&nbsp;&nbsp;&nbsp;like&nbsp;&nbsp;&nbsp;'%中文%'&nbsp;&nbsp;&nbsp;&nbsp;或是&nbsp;='中文'<br>&nbsp;&nbsp;&nbsp;就不能返回的结果集
 
执行&nbsp;&nbsp;&nbsp;Select&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;From&nbsp;&nbsp;&nbsp;Table1&nbsp;&nbsp;&nbsp;Where&nbsp;&nbsp;&nbsp;field1&nbsp;&nbsp;&nbsp;like&nbsp;&nbsp;&nbsp;%'中文'%试一下
 
to楼上<br>你的方法你自己能执行么!
 
newfood123喜歡想當然,你見過這樣的語法嗎like&nbsp;&nbsp;&nbsp;%'中文'%
 
应该是字符集问题
 
由于数据存储方式的原因,使用包含&nbsp;char&nbsp;和&nbsp;varchar&nbsp;数据的模式的字符串比较可能无法通过&nbsp;LIKE&nbsp;比较。您应当了解每种数据类型的存储方式以及导致&nbsp;LIKE&nbsp;比较失败的原因。
 
字符集问题,.net中,“中文”两个字通常是Unicode,通常数据库里面保存的不是Unicode,而在.net和Sybase的连接时可能由于字符集设置没有设置好,SQL传到数据库里面的时候“中文”两个字没有转换过来,所以就查不到;而PB中可能不需要转换,所以可以查到;<br>Sybase应该带的有关于跟踪SQL语句执行的工具吧,跟一下就什么都出来了。
 
with&nbsp;Query1&nbsp;do<br>begin<br>SQL.Clear;<br>sql.add(Select&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;From&nbsp;&nbsp;&nbsp;Table1&nbsp;&nbsp;&nbsp;Where&nbsp;&nbsp;&nbsp;field1&nbsp;&nbsp;&nbsp;like&nbsp;&nbsp;:zw');<br>Parameters.ParamByName('zw').Value:='%中文%';<br>open;<br>end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
732
import
I
后退
顶部