如何在组合框 vfp 上存储 sql server 表名
在我阅读了 SQL Server 2005 Express 表中的 VFP ComboBox 内容之后
有人可以帮我将名称表从 dbo sql server 存储到组合框 vfp
我尝试使用 sqltables() 并存储在 Grid1 vfp 中,可以显示名称表是
我的加载表单代码如下
<br/>public KONEKSI, mskedul1
STORE SQLCONNECT('surya','surya','surya_database') TO KONEKSI
IF KONEKSI > 0
SQLEXEC(KONEKSI,'use ksp_arthasurya')
endif
SQLTables(m.KONEKSI,'TABLE','tableList')
初始化时的我的代码来自
<br/>thisform.grid1.recordsource = 'tablelist'
在我的 grid1 上显示的表包含我的 sql 服务器 dbo.ksp_arthasurya
我的问题是我想命名属于我的组合框vfp上列出的dbo.ksp_arthasurya的表,如果我单击组合框vfp上的名称,我的grid1 vfp会显示数据表..
(你在多个网站上问同样的问题,你没看回复吗?无论如何)
这是一个示例表单,它将表名称放入组合框中,并在选择表后,在网格中显示该表的前 100 行:
(请注意,由于用户无法键入样式 2 的组合框,因此该代码不会被视为容易受到 SQL 注入攻击 - 但在您的实际用例中,您应该彻底进行评估)
Public oForm
oForm = Createobject('SampleForm')
oForm.Show()
Define Class SampleForm As Form
Height=800
Width =600
Add Object cmbTables As ComboBox With Left=10, Top=10, Width=300,Style=2
Add Object grdViewer As Grid With Left=0,Top=40,Height=760,Width=600,Anchor=15
Procedure Init
Local KONEKSI, lcSQL
STORE SQLCONNECT('surya','surya','surya_database') TO KONEKSI
* Store Sqlstringconnect('Driver={SQL Server Native Client 11.0};Server=...;Database=ksp_arthasurya;...') To m.KONEKSI
IF m.KONEKSI < 0
MESSAGEBOX("Couldn't connect.",0,'SQL Server connection',5000)
RETURN .F.
endif
SQLEXEC(m.KONEKSI,'use ksp_arthasurya')
This.AddProperty('nHandle', m.KONEKSI)
TEXT TO m.lcSQL noshow
Select CAST(QUOTENAME(SCHEMA_NAME(schema_id)) + '.' + QUOTENAME(Name) as varchar(200)) AS TableName
FROM sys.Tables
WHERE is_ms_shipped=0
ORDER by schema_name(schema_id), Name
ENDTEXT
lnResult = SQLExec(m.KONEKSI, m.lcSQL,'TableList')
If m.lnResult < 0
Aerror(aWhy)
Messagebox(aWhy[2])
SQLDisconnect(0)
Return .F.
Else
With Thisform.cmbTables
.RowSourceType = 3
.RowSource = 'select TableName from TableList into cursor crsTables nofilter'
.ListIndex=0
Endwith
Endif
Endproc
Procedure cmbTables.InteractiveChange
Local lcSQL
Use In (Select('crsResult'))
TEXT TO m.lcSQL TEXTMERGE noshow
select top(100) * from << TRIM(crsTables.TableName) >>
ENDTEXT
SQLExec(Thisform.nHandle, m.lcSQL ,'crsResult')
With Thisform.grdViewer
.ColumnCount = -1
.RecordSource = "crsResult"
.AutoFit()
Endwith
ENDPROC
PROCEDURE Destroy
SQLDISCONNECT(this.nHandle)
endproc
Enddefine