用select语句查询Access表格的奇怪问题

airelf 2010-04-12 04:35:40
用以下select语句查询Access表格时出现问题
sqlstring="SELECT 序号,日期,用户名,"+sqlfields+" FROM "+TableName; //这句出问题
//sqlstring="SELECT * FROM "+TableName; //换成这句没问题
DataModule1->ADOQuery1->SQL->Clear();
DataModule1->ADOQuery1->SQL->Add(sqlstring);
DataModule1->ADOQuery1->Active=true; //运行到这里时出现错误提示

其中 " 序号,日期,用户名,"是固定的,sqlfields根据用户的设置不同,我发现字段名为中文、纯字母、字母起头数字结尾的字段名没问题,其他形式的字段名查询时就有问题。但在建立表格或修改表格结构时,都没有问题。我是用 ALTER TABLE 修改表格结构。

问题 1 :如果字段名为纯数字组合时,查询结果显示在DBGrid时,字段名的位置不显示这个纯数字组合,而是显示类似 expr1003,expr1004之类的,原本应该显示查询内容的位置却显示这个纯数字组合。例如:4878 这个字段,原本字段名的地方显示 expr1003 ,而内容却不显示正确的内容,显示的是 “4878”。

问题 2:如果字段名为子母数字组合且数字起头,一旦开始查询,就出现错误提示:语法错误(操作符丢失)在查询表达式 87saf中。( 87saf 在这里是举例的具体的字段名)

百思不解,如果我的字段名定义的有问题,在用 ALTER TABLE 增加或修改字段名时,应该有提示啊!!???


...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
airelf 2010-04-12
  • 打赏
  • 举报
回复
明白了
银点 2010-04-12
  • 打赏
  • 举报
回复
数据库的设计,字段名称,从来都是杜绝中文的。
柯本 2010-04-12
  • 打赏
  • 举报
回复
这个正常,所以尽量用标准的标识来做字段名.
不过,这个可以这样解决的,在你的SQL的字段名加[]号
如:
select [4878],[87saf] form 表

1,178

社区成员

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

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