求助:DBGrid中怎樣顯示SQL中固定為空的一列?

huweiguohwg 2013-05-13 10:51:45
有一段SQL:
select emp_no emp, password passw, '' mark from user_table;
需要將這一段SQL返回的數據集顯示到DBGrid中,但是執行后DBGrid中不會顯示“mark”這一列,請問各位有辦法解決么?

PS:前提是就只能用DBGrid控件,不能對DBGrid設定固定的Column,不過可以修改SQL語句
...全文
162 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zbdzjx 2013-05-15
  • 打赏
  • 举报
回复
引用 10 楼 huweiguohwg 的回复:
[quote=引用 9 楼 zbdzjx 的回复:] 写了很多年的Delphi程序,还真没碰到过这样的情况。
是不會有這樣的情況,還是沒有過像我這樣的要全列固定為空還要顯示到DBGrid的要求? (就是你們即使會有全列為空,DBGrid中也能正常顯示出來?)[/quote] 之前写报表时,如果这列的内容还没加,我都是先用NULL或是''来先生成这个列的。 因为有时SQL语句会写到视图中,这样,如果要改报表内容,很多时候不用改程序,直接在数据库中改视图就可以了。 但真的没碰到过这种情况。 如果是用ADOQuery这样的控件连接的,可以看看ADOQuery中是不是限制了要显示的字段。
huweiguohwg 2013-05-15
  • 打赏
  • 举报
回复
我知道這種情況: select emp_no emp, password passw, AAA as mark from user_table; (其中“AAA”這個欄位都是NULL) 時DBGrid是正常顯示出來的了,但是如果是寫死為"NULL AS mark"爲什麽就會被DBGrid自動忽略呢?好糾結~~~
huweiguohwg 2013-05-15
  • 打赏
  • 举报
回复
引用 9 楼 zbdzjx 的回复:
写了很多年的Delphi程序,还真没碰到过这样的情况。
是不會有這樣的情況,還是沒有過像我這樣的要全列固定為空還要顯示到DBGrid的要求? (就是你們即使會有全列為空,DBGrid中也能正常顯示出來?)
zbdzjx 2013-05-15
  • 打赏
  • 举报
回复
写了很多年的Delphi程序,还真没碰到过这样的情况。
huweiguohwg 2013-05-15
  • 打赏
  • 举报
回复
爲什麽沒有人教教我啊? 這種情況是確實存在的,不信大家可以親自嘗試一下看看!
huweiguohwg 2013-05-15
  • 打赏
  • 举报
回复
引用 15 楼 Oraclers 的回复:
Oracle没用过,但MSSQL 中你可将字段设定一个类型就没问题,如:cast('' as varchar(10)) as Mark
Oh, Great! 这样就能达到我的目的了!感谢!!! 同样也感谢上面各位的帮助,若还有其他方法也请指教! (2天后再结贴~)
Oraclers 2013-05-15
  • 打赏
  • 举报
回复
引用 14 楼 huweiguohwg 的回复:
回:#12 & #13 1. 我用的是BDE的Query控件,我們用的Oracle,還是用Query方便些~~~ 剛剛我用ADOQuery測試了一下,是可以顯示出來的~~~ 2. dbgrid沒有設定固定列。 所以现在我有点怀疑是Query控件的问题了,但是我还没确定问题在哪里? 有人注意过这一点么?还望指点!
Oracle没用过,但MSSQL 中你可将字段设定一个类型就没问题,如:cast('' as varchar(10)) as Mark
huweiguohwg 2013-05-15
  • 打赏
  • 举报
回复
回:#12 & #13 1. 我用的是BDE的Query控件,我們用的Oracle,還是用Query方便些~~~ 剛剛我用ADOQuery測試了一下,是可以顯示出來的~~~ 2. dbgrid沒有設定固定列。 所以现在我有点怀疑是Query控件的问题了,但是我还没确定问题在哪里? 有人注意过这一点么?还望指点!
sundayzhao 2013-05-15
  • 打赏
  • 举报
回复
首先看adoquery是不是设置了固定列,然后看dbgrid是不是设置了固定列,除此之外,不会有其他的原因。
随行的太阳 2013-05-14
  • 打赏
  • 举报
回复
山东蓝鸟贵薪 2013-05-13
  • 打赏
  • 举报
回复
网上有教程的, 楼主自己找找吧
huweiguohwg 2013-05-13
  • 打赏
  • 举报
回复
Up Up! 求幫助想想辦法,我用的Delphi7~
huweiguohwg 2013-05-13
  • 打赏
  • 举报
回复
引用 4 楼 fox600123 的回复:
select emp_no emp, password passw, '' mark from user_table; 没编辑过dbgrid的话,照理应该有 mark这一列的啊? '' mark 换 null as mark 试试看吧
Bingo,我之前也沒想到會遇到這樣的情況,所以現在就搞不明白了! 這樣也不可行! 不過的的確確就不會顯示這一列,可以嘗試一下!
fox600123 2013-05-13
  • 打赏
  • 举报
回复
select emp_no emp, password passw, '' mark from user_table; 没编辑过dbgrid的话,照理应该有 mark这一列的啊? '' mark 换 null as mark 试试看吧
feiba7288 2013-05-13
  • 打赏
  • 举报
回复
引用 2 楼 huweiguohwg 的回复:
[quote=引用 1 楼 sgzhou12345 的回复:] 网上有教程的, 楼主自己找找吧
謝謝,我有找,不過沒有和我一樣的情況,請問有方法么? 我的“mark”這一列就是永遠為空值(但是需要保留這一列),可是在DBGrid中就自動將這一列除掉了,不顯示出來~~~[/quote] 按理说不会,以前也有这么写SQL,可没有遇到你说的情况。。。
huweiguohwg 2013-05-13
  • 打赏
  • 举报
回复
引用 1 楼 sgzhou12345 的回复:
网上有教程的, 楼主自己找找吧
謝謝,我有找,不過沒有和我一樣的情況,請問有方法么? 我的“mark”這一列就是永遠為空值(但是需要保留這一列),可是在DBGrid中就自動將這一列除掉了,不顯示出來~~~

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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