zoukankan      html  css  js  c++  java
  • 列举SQL Server中的数据库名称、某一数据库的中表名

    列举SQL Server中的数据库名称、某一数据库的中表名

    *-----------------------------------

    方法一:

    调用系统数据库 MASTER 中的存储过程 sp_helpdb 即可,如下:

    lnsqlhandle=SQLSTRINGCONNECT("driver=SQL Server;server=计算机名;uid=sa;pwd=;database=master")
    IF lnsqlhandle<0
    MESSAGEBOX('连接失败!',16,'信息提示')
    RETURN
    ENDIF
    lnsucc=SQLEXEC(lnsqlhandle,"exec sp_helpdb","DataBaseValue")
    IF lnsucc<0
    MESSAGEBOX('调用失败!',16,'信息提示')
    RETURN
    ENDIF
    SELECT DataBaseValue
    SCAN
    ?ALLTRIM(NAME)
    ENDSCAN


    如果想把数库名显示在一个下拉框中
    ----------------------------------

    在表单的INIT事件中:

    THISFORM.COMBO1.STYLE=2
    THISFORM.COMBO1.ROWSOURCETYPE=6
    THISFORM.COMBO1.ROWSOURCE='ALLTRIM(DataBaseValue.Name)'

    前提:表单上有控件COMBO1



    方法二:
    ----------------------------------

    用DMO,如果没有安装SQL Server的话,只需把SQLDMO.DLL注册一下就可以了。

    LOCAL loForm
    loForm = CREATEOBJECT("Form1")
    loForm.SHOW(1)

    DEFINE CLASS Form1 AS FORM

    WIDTH = 200
    HEIGHT = 70
    MAXBUTTON = .F.
    BORDERSTYLE = 2
    CAPTION = "SQL Server"
    ADD OBJECT COMBO1 AS COMBOBOX WITH TOP = 20, LEFT = 30, WIDTH = 140, STYLE = 2
    PROCEDURE INIT
    LOCAL loServer
    loServer = CREATEOBJECT("SQLDMO.SQLServer")
    loServer.CONNECT("127.0.0.1", "sa", "")
    FOR i2 = 1 TO loServer.DATABASES.COUNT
    THIS.COMBO1.ADDITEM(loServer.DATABASES.ITEM(i2).NAME)
    ENDFOR
    THIS.COMBO1.VALUE = THIS.COMBO1.LIST(1)
    RELEASE loServer
    ENDPROC
    ENDDEFINE







    列举SQL Server中某一数据库中的表名

    *-----------------------------------
    lnsqlhandle=SQLSTRINGCONNECT("driver=SQL Server;server=计算机名;uid=sa;pwd=;database=数据库名")
    IF lnsqlhandle<0
    MESSAGEBOX('连接失败!',16,'信息提示')
    RETURN
    ENDIF
    lnsucc=SQLTABLES(lnsqlhandle,'TABLE','MyTable') &&'TABLE'必须大写,取得用户表名
    *lnsucc=SQLTABLES(lnsqlhandle,'VIEW','MyTable') &&'VIEW'必须大写,取得视图名
    *lnsucc=SQLTABLES(lnsqlhandle,'SYSTEM TABLE','MyTable') &&'SYSTEM TABLE'必须大写,取得系统表名
    *lnsucc=SQLTABLES(lnsqlhandle,'','MyTable') &&'SYSTEM TABLE'必须大写,取得所有表名
    IF lnsucc<0
    MESSAGEBOX('出错了!',16,'信息提示')
    RETURN
    ENDIF
    SELECT MyTable
    SCAN
    ?ALLTRIM(Table_Name)
    ENDSCAN

    如果想把数库中的表名显示在一个下拉框中
    ----------------------------------
    在表单的INIT事件中:

    THISFORM.COMBO1.STYLE=2
    THISFORM.COMBO1.ROWSOURCETYPE=6
    THISFORM.COMBO1.ROWSOURCE='ALLTRIM(MyTable.Table_Name)'

    前提:表单上有控件COMBO1

     
  • 相关阅读:
    semantic-ui 容器与栅格
    semantic-ui 分段
    semantic-ui 分割线
    semantic-ui 图片
    semantic-ui 标题
    semantic-ui 图标
    semantic-ui 按钮
    PHP实现无限级分类
    后端修改配置文件后,前端刷新页面--搭配鉴权
    上线新系统后,统计从旧系统切换到新系统的数据
  • 原文地址:https://www.cnblogs.com/chenzhao/p/2082003.html
Copyright © 2011-2022 走看看