排序的问题

feilongzaitian1979 2004-08-11 08:21:51
用BCP导入的数据,顺序被打乱了,我猜是多线程的事.但我显示数据的时候要按小到大的顺序显示,我写了如下代码
ADOQuery1->SQL->Clear();
ADOQuery1->Close();
ADOQuery1->SQL->Add("SELECT * FROM DataAnalyzer.dbo.datastore");
ADOQuery1->SQL->Add("ORDER BY CollectingTime");
ADOQuery1->ExecSQL();
DBGrid1->Refresh();

但是加在Table的BeforeOpen()和AfterOpen()里面都没有效果,这是为什么呢?我该怎么做呢?
...全文
149 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
feilongzaitian1979 2004-08-15
  • 打赏
  • 举报
回复
谢谢楼上的
nicolasx 2004-08-13
  • 打赏
  • 举报
回复
我想你的问题应该出在这里,
SQL语句只能对SQL返回的结果集排序
不能改变数据表里的物理位置。
如果你用TABLE控件的话,在数据表里需要排序的字段上加个索引,然后设置TABLE控件
使用这个索引就行了
不需要在打开表之前用SQL的。
cchao 2004-08-12
  • 打赏
  • 举报
回复
你不会没设DBGild的DataSource属性吧?
feilongzaitian1979 2004-08-12
  • 打赏
  • 举报
回复
要能手动放的话,我就不会用BCP了,手动速度太慢!
cchao 2004-08-12
  • 打赏
  • 举报
回复
那就用FieldByName取出来手动放进去............
feilongzaitian1979 2004-08-12
  • 打赏
  • 举报
回复
我今天试了,一样不起作用啊
ralpha08 2004-08-11
  • 打赏
  • 举报
回复
select 语句要用Open
update ,insert ,……用ExecSQL
feilongzaitian1979 2004-08-11
  • 打赏
  • 举报
回复
这样和我写的有区别吗?
ralpha08 2004-08-11
  • 打赏
  • 举报
回复
这样写
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT * FROM DataAnalyzer.dbo.datastore");
ADOQuery1->SQL->Add("ORDER BY CollectingTime");
ADOQuery1->Open();

1,178

社区成员

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

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