怎么在BCB中取SQL Server/Sybase中符合条件的表

XChinux 2004-09-01 09:11:33
想得到xx表日期在8月的所有表
select name from sysobjects where name >= 'xx040801' and name < 'xx040901'

后,取结果集
执行后来 Query1->FieldByName("name")->AsString;
为什么语句中错误,说没有name字段
有什么更好的方法?
而且sysobjects有25个字段,查询后,Query1中得到的字段只有24个,name确实没了,原来的第二项id变成了第一项
...全文
134 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
krakan 2004-09-02
  • 打赏
  • 举报
回复
恩,又学到一招!
krakan 2004-09-02
  • 打赏
  • 举报
回复
恩,又学到一招!
krakan 2004-09-02
  • 打赏
  • 举报
回复
恩,又学到一招!
cuihailong79 2004-09-01
  • 打赏
  • 举报
回复
找到原因了
是由于sysobjects中的name字段是nvarchar类型,是UNICODE字符型的,只要把其转换成varchar类型就可以了。
SELECT CAST(name AS VARCHAR) AS table_name FROM sysobjects WHERE name >= 'xx040801' AND name < 'xx040901'

也可以用CONVERT(VARCHAR, name)转换
如果是Sybase的话只能用CONVERT(VARCHAR, name)
XChinux 2004-09-01
  • 打赏
  • 举报
回复
找到原因了
是由于sysobjects中的name字段是nvarchar类型,是UNICODE字符型的,只要把其转换成varchar类型就可以了。
SELECT CAST(name AS VARCHAR) AS table_name FROM sysobjects WHERE name >= 'xx040801' AND name < 'xx040901'

也可以用CONVERT(VARCHAR, name)转换
如果是Sybase的话只能用CONVERT(VARCHAR, name)
sczyq 2004-09-01
  • 打赏
  • 举报
回复
学习

1,178

社区成员

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

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