ado动态生成表和字段的问题(在线等待............)

ntz 2003-06-19 01:40:04
请问各位高手,怎样用代码实现ADO动态生成表和字段,还有各个字段的类型,多谢!
...全文
446 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2003-09-24
  • 打赏
  • 举报
回复
use ADOX:

Sub createtable() '创建数据库的表
On Error Resume Next
Dim mycat As New ADOX.Catalog
Dim mytable As New ADOX.Table
mycat.ActiveConnection = "Provider=MicroSoft.Jet.OLEDB.3.51;Data Source=e:\new.MDB"
For i = 1 To 9
mytable.Name = "表" & i
mytable.Columns.Append "字段1", adDate
mytable.Columns.Append "字段2", adInteger
mytable.Columns.Append "字段3", adBoolean
mytable.Columns.Append "字段4", adVarChar
mycat.Tables.Append mytable
Set mytable = Nothing
Next
MsgBox "创建 表1----表9 成功!"
Set mycat.ActiveConnection = Nothing

End Sub
easydone 2003-09-24
  • 打赏
  • 举报
回复
再来一个带主键的例子:
Dim yhCat As ADOX.Catalog
Dim yhTbl As ADOX.Table
Dim yhKey As ADOX.Key
Dim yhCol As ADOX.Column
Set yhCat = New ADOX.Catalog
Set P_Cnn = New ADODB.Connection
Set yhTbl = New ADOX.Table
Set P_Rs = New ADODB.Recordset
yhSql = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + txtPath.Text + ";Jet OLEDB:Database Password=young_huge@263.net;"
P_Cnn.Open yhSql
Set yhCat.ActiveConnection = P_Cnn

yhTbl.Name = "ts_userInfo"
yhTbl.Columns.Append "user", adVarWChar, 16
yhTbl.Columns.Append "unit", adVarWChar, 80
yhTbl.Columns.Append "ip", adVarWChar, 20
yhTbl.Columns.Append "hostname", adVarWChar, 80
yhTbl.Columns.Append "dbtype", adVarWChar, 64
yhTbl.Columns.Append "authority", adVarWChar, 16
yhTbl.Columns.Append "ctime", adDate
For Each yhCol In yhTbl.Columns
yhCol.Attributes = adColNullable
Next yhCol
'建主键
yhKey.Name = "ts_userInfo"
yhKey.Type = adKeyPrimary
yhKey.Columns.Append "user"
yhTbl.Keys.Append yhKey

yhCat.Tables.Append yhTbl
yhCat.Tables.Refresh
sunliangchao 2003-09-23
  • 打赏
  • 举报
回复
就是上面的办法,只不过没有那么麻烦
生成StrCreatDB字符串后
cn.excute StrCreatDB就行了。
yoki 2003-09-23
  • 打赏
  • 举报
回复
dim cn as new adodb.connection
cn.execute "create table t1(a int,b varchar(20),c datetime)"
hillstream3 2003-09-23
  • 打赏
  • 举报
回复
'生成新tmp表
Dim createTblCmd As New ADODB.Command
Set createTblCmd.ActiveConnection = cn



rsStructEle.MoveFirst
'制作一个用于生成表的字符串
Dim strCreTabCmdText As String

strCreTabCmdText = "CREATE TABLE TempMIBValues(InstIndex INT,"
....

strCreTabCmdText = Left(strCreTabCmdText, Len(strCreTabCmdText) - 1)
strCreTabCmdText = strCreTabCmdText & ")"

Debug.Print "create a table : " + createTblCmd.CommandText
'将生成字串赋给commandtext
createTblCmd.CommandText = strCreTabCmdText
'执行生成表的动作
createTblCmd.Execute , , adCmdText

'从一个记录集中找到类型

'将最终的查询结果与数据表关联起来
adcChildStructList.RecordSource = "Select * From TempMIBValues"
adcChildStructList.Refresh
Set dgdElementList.DataSource = adcChildStructList

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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