想得到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重新编辑 ]