ADO多层数据的定位问题LOCATE(200分)

  • 主题发起人 主题发起人 青侠
  • 开始时间 开始时间

青侠

Unregistered / Unconfirmed
GUEST, unregistred user!
使用MS ACCESS和MS SQL2000的数据库,采用多层C/S结构,但是服务端使用ADOConntion,ADoQuery,DataSetProvider1;
而在客户端使用TDCOMConnetion,TClieatDataSet,TdataSource,TDBgird等控件,输入SQL语,
能表格显示数据,但是无法用Locate定位内容,如Locate('name','王小三',[]),返回是没有找到数据指针没有移动;
如果直接用ADOconntion,ADOquery,TDBgrid,则可以的,使用多层的我试了几次没有成功请闾高手如何解
 
即然是多層,建議客戶端不要用locate來查找,因為這樣會把所有數据下載到本地.
我通常這樣查找:
TClieatDataSet.close;
TClieatDataSet.commandtext:='select * from person where name='王小三' ';
TClieatDataSet.open;
先在后台數据庫中下載一筆記彔,然后新增到本地.
TClieatDataSet2.appenddata(.........);
 
你LOCATE一个英文单词,不要用中文,就像“王小二”之类,加一个WXR试试
如果可通过的话,这就是中间层用的字符格式和客户端不一样
我记得好像是截掉一半,只是好像是哦:)
 
To 52free:
字段值用中文應該沒關系吧,只要字段名不用中文就可以.
 
ms sql2000中字段类型为nvarchar时无法定位,内容是中文无法定位而英文可以,
如改为char类型,转换时值自动加上一些空白字符可以定位;我当ms access转换导入
ms sql2000中自动转换为nvarchar类型!
 
在MS access2000中英文是可以的中文就是不行,有没有解决方案?
否则以前的程序重新编辑了
 
后退
顶部