• 6135阅读
  • 0回复

【原创】怎么在BCB中取SQL Server/Sybase中符合条件的表 [复制链接]

上一主题 下一主题
离线XChinux
 

只看楼主 倒序阅读 楼主  发表于: 2005-07-30
想得到xx表日期在8月的所有表
select name from sysobjects where name >= 'xx040801' and name < 'xx040901'

后,取结果集
执行后来 Query1->FieldByName("name")->AsString;
为什么语句中错误,说没有name字段
有什么更好的方法?
而且sysobjects有25个字段,查询后,Query1中得到的字段只有24个,name确实没了,原来的第二项id变成了第一项


?    

找到原因了
是由于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在2005-08-25 10:44重新编辑 ]
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个