| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1159 人关注过本帖
标题:查询结果
只看楼主 加入收藏
vbtom
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-9-5
收藏
 问题点数:0 回复次数:13 
查询结果
我做了一个查询,这个SQL语句由用户自己根据自己的需要输入到一个text控件中,然后点击按钮执行查询过程,结果在datagrid中显示。这些都已实现。
现在我想问的问题是:当输入如select * from table句时,这个table的最后两个field内容不在datagrid中显示,不知如何做?可以设置datagrid吗?
当然不能用select field1,field2,...fieldn from table 来实现。因为用户是不会记住那么多field name. 谢谢!

Private Sub CmdExecute_Click()
    On Error GoTo Err_Execute
    Dim strSql As String
    Dim rstSql As New ADODB.Recordset
    If Trim(TxtSQL.Text) = "" Then
        MsgBox "SQL text is blank. Please check!", vbOKOnly, "Prompt"
        Exit Sub
    End If
    rstSql.CursorLocation = adUseClient
    'strSql = "select * from pc"
    strSql = Trim(TxtSQL.Text)
    strSql = LCase(strSql)
    If InStr(1, strSql, "update") <> 0 Or InStr(1, strSql, "delete") <> 0 _
    Or InStr(1, strSql, "create") <> 0 Or InStr(1, strSql, "alter") <> 0 Or InStr(1, strSql, "drop") <> 0 Then
        MsgBox "The action is danger! Can not be executed!", vbOKOnly + vbExclamation, "Warning"
        Exit Sub
    End If
    rstSql.Open strSql, cnn, adOpenKeyset, adLockPessimistic
    Set DgdExplorer.DataSource = rstSql
    DgdExplorer.Refresh
    Set rstSql = Nothing
    Exit Sub
Err_Execute:
    MsgBox "SQL syntax error! Please check!", vbOKOnly + vbExclamation, "Warning"
    Exit Sub
End Sub
搜索更多相关主题的帖子: 结果 查询 
2007-12-14 14:29
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 
用户记不住field

那你就把那张表的所有field都列出来。让用户自己设计那些列显示哪些不显示

[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-12-14 14:40
vbtom
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-9-5
收藏
得分:0 
主要是后两个field是editor,editdatetime用来记录每条记录的修改人和时间,我不想人家看到。

还有,即使列出来,用户也嫌麻烦。还是用select * 方式。

[[italic] 本帖最后由 vbtom 于 2007-12-14 14:59 编辑 [/italic]]
2007-12-14 14:56
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
同意2楼说法.

我的msn: myfend@
2007-12-14 15:07
vbtom
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-9-5
收藏
得分:0 
各位BZ的说法都对,问题就是如何避免用户输入select *时的后两个field不要在datagrid中显示。

用户在工作中绝对是会输入select * from table的。
2007-12-14 15:27
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
select *时的后两个field
看不懂..

我的msn: myfend@
2007-12-14 16:08
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 
你的datagrid是与数据库绑定的?

[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-12-14 16:13
vbtom
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-9-5
收藏
得分:0 
没有绑定。
不好意思。
可能我的意思没有表达清楚值勤或者是大家还没有明白我的意思 。

rst.open "select * from table",cnn
set datagrid.datasource = rst

这样会使datagrid显示table 的所有内容。而我的目的是要这个table 的后两个字段的内容不在datagrid中显示。如何做?
谢谢各位!
2007-12-16 17:58
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
用户输入select *之后..你在后台去做事情.

我的msn: myfend@
2007-12-16 18:46
vbtom
Rank: 1
等 级:新手上路
帖 子:63
专家分:0
注 册:2007-9-5
收藏
得分:0 
版主能否给个思路?或者是怎样修改datagrid?

我曾想用msflexgrid来代替,可是考虑到不同的table,它的field数与名也不同,不好控制,放弃了。
2007-12-17 11:58
快速回复:查询结果
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.059504 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved