启动VB6.0,新建一个工程,在菜单-工程-引用里选Microsoft ActiveX Data Objects 2.5 Library
Dim conn As New ADODB.Connection '定义数据库对象
Dim connstr As Stringconnstr = "provider=sqloledb;server=servername;uid=sa;pwd="";database="""
conn.ConnectionString = connstr
conn.Open执行,无效的过部过程
字符串改为:
connstr = "driver={sql server};server=servername;uid=sa;pwd="";database="""
conn.ConnectionString = connstr
conn.Open执行,无效的外部过程
Dim conn As New ADODB.Connection '定义数据库对象
Dim connstr As Stringconnstr = "provider=sqloledb;server=servername;uid=sa;pwd="";database="""
conn.ConnectionString = connstr
conn.Open执行,无效的过部过程
字符串改为:
connstr = "driver={sql server};server=servername;uid=sa;pwd="";database="""
conn.ConnectionString = connstr
conn.Open执行,无效的外部过程
能不能直接在vb的界面下建,另别通过VB6.0的ADO访问sql2000,上面的连接方式正确吗?
为什么有些是通过provider建,究竟应该怎样写?
=================================================================================
Tiger_Zhao(VB老鸟)是正解
你说的我已经能够通过ADO做到了!但是我现在想做的是在VB6.0中怎样能直接连接到master库,并建立数据库,访问数据库,就具体上面Tiger_Zhao(VB老鸟)给的意见,我也知道是正确的,但是怎样具体做呢?我就不太清楚,如我选Microsoft ActiveX Data Objects 2.5 Library具体该怎么做呢?
connstr = "provider=sqloledb;server=servername;uid=sa;pwd="";database="master"
conn.ConnectionString = connstr
conn.Open
再建gzjs
CONN.EXECUTE("CREAT DATABASE GZJS")
CONN.EXECUTE("USE GZJS")
conn.Open "dsn=dd;uid=sa;pwd="""
conn.Execute ("create database gzjs")
conn.Execute ("user gzjs")
调试,无效的外部过程!Dim conn As New ADODB.Connection '定义数据库对象conn.Open "provider=sqloledb;Data Source=servername;Initial Catalog=master;uid=sa;pwd="""
conn.Execute ("create database gzjs")
conn.Execute ("user gzjs")
调试,无效的外部过程Dim conn As New ADODB.Connection '定义数据库对象
Dim connstr As Stringconnstr = "provider=msdasql;driver=sql server;server=servername;database=master;uid=sa;pwd="
conn.ConnectionString = connstr
conn.Open
调试,无效的外部过程Dim conn As New ADODB.Connection '定义数据库对象
Dim connstr As Stringconnstr = "provider=sqloledb;server=jsld-xxcx01;database=master;uid=sa;pwd="""
conn.ConnectionString = connstr
conn.Open
调试,无效的外部过程!我想这些语句应该没有错,究竟是哪里错了呢!
ByVal e As System.EventArgs) Handles btnCreateDatabase.Click
Dim reader As SqlDataReader
Dim str As String Dim myConn As SqlConnection = New SqlConnection("Server=(local)\netsdk;" & _
"uid=sa;pwd=;database=master") str = "CREATE DATABASE MyDatabase ON PRIMARY " & _
"(NAME = MyDatabase_Data, " & _
" FILENAME = 'D:\MyFolder\MyDatabaseData.mdf', " & _
" SIZE = 2MB, " & _
" MAXSIZE = 10MB, " & _
" FILEGROWTH = 10%) " & _
" LOG ON " & _
"(NAME = MyDatabase_Log, " & _
" FILENAME = 'D:\MyFolder\MyDatabaseLog.ldf', " & _
" SIZE = 1MB, " & _
" MAXSIZE = 5MB, " & _
" FILEGROWTH = 10%) " Dim myCommand As SqlCommand = New SqlCommand(str, myConn)Try
myConn.Open()
reader = myCommand.ExecuteReader()
Catch ex As Exception
MessageBox.Show(ex.ToString())
Finally
If Not reader Is Nothing Then
reader.Close()
If (myConn.State = ConnectionState.Open) Then
myConn.Close()
End If
MessageBox.Show("Database is created successfully", _
"MyProgram", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End If
End Try
End Sub
Dim myCommand As SqlCommand = New SqlCommand(str, myConn)Try
myConn.Open()
reader = myCommand.ExecuteReader()
Catch ex As Exception
MessageBox.Show(ex.ToString())
Finally
If Not reader Is Nothing Then
reader.Close()
If (myConn.State = ConnectionState.Open) Then
myConn.Close()
End If
MessageBox.Show("Database is created successfully", _
"MyProgram", MessageBoxButtons.OK, _
MessageBoxIcon.Information)
End If
End Try'请问这段代码是起什么作用?
下面这是我的创建数据库的代码.也可以创建数据库.
Private Sub CreatDataBase(ServerName As String, Uid As String, Pwd As String, SqlPathName As String)
Dim Conn As New ADODB.Connection
Dim sqlstr As String
On Error GoTo errhandler
Conn.Open "Provider=SQLOLEDB.1;Password=" & Pwd & ";Persist Security Info=false;User ID=" & Uid & ";Initial Catalog=master;Data Source=" & ServerName
sqlstr = "CREATE DATABASE mydatabase ON PRIMARY " & _
"(NAME = mydatabase_data, " & _
" FILENAME = '" & SqlPathName & "\data\MyDatabaseData.mdf', " & _
" SIZE = 2MB, " & _
" MAXSIZE = 10MB, " & _
" FILEGROWTH = 10%) " & _
" LOG ON " & _
"(NAME = mydatabase_Log, " & _
" FILENAME = '" & SqlPathName & "\data\MyDatabaseData_log.LDF', " & _
" SIZE = 1MB, " & _
" MAXSIZE = 5MB, " & _
" FILEGROWTH = 10%) "
Conn.Execute sqlstr MsgBox "恭喜你!数据库创建成功!"
Conn.Close
Set Conn = Nothing
Exit Suberrhandler:
Select Case Err.Number
Case -2147217900
MsgBox "数据库创建失败,数据库已经存在!", vbExclamation, App.Title
Case -2147467259
MsgBox "数据库创建失败,服务器不存在或者服务器上并没有安装SQL Server.", vbExclamation
Case -2147217843
MsgBox "数据库创建失败,请检查你的用户名或者密码是否正确.", vbExclamation
Case Else
MsgBox "错误号:" & Err.Number & vbCrLf & "错误原因:" & Err.Description, vbExclamation
End SelectExit Sub
或 connstr=" ... "请帮我看一下这一段程序:Private Sub Command1_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim connstr As String
Dim id, fname, lname As String
Dim isadded As Booleanconnstr = "provider=sqloledb;data source=servername;initial catalog=pubs;user id=sa;password=;"
conn.ConnectionString = connstr
conn.Openrs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.Open "employee", conn, , , adCmdTable
id = Trim(Text1.Text)
fname = Trim(Text2.Text)
lname = Trim(Text3.Text)If (id <> " ") And (fname <> " ") And (lname <> " ") Then
rs.AddNew
rs!emp_id = id
rs!fname = fname
rs!lname = lname
rs.Update
isadded = True
MsgBox "new record:" & rs!emp_id&""&rs!fname&""&rs!lname&"!""
Else
MsgBox "please inter id,fname,lname"
End Ifconn.Execute "delete from employee where emp_id='"&id&"'"
rs.Close
conn.Close
End SubPrivate Sub Form_Load()
Text1.Text = " "
Text2.Text = " "
Text3.Text = " "
End Sub这一次,在连接上没有显示无效的外部过程,但是却显示
MsgBox "new record:" & rs!emp_id&""&rs!fname&""&rs!lname&"!""conn.Execute "delete from employee where emp_id='"&id&"'"这二句语法错误,
总之,就是记录没有增加,怎样改才有效!
按你意见,把
rs!emp_id = id
rs!fname = fname
rs!lname = lname
改为:
conn.execute "insert into employee (emp_id,fname,lname) values('" & id & "','" & fname & "','" & lname & "')"运行,语法错误,又改为:
conn.Execute "insert into employee set emp_id="&id&",fname="&fname&",lname="&lname&"
运行,语法错误!
On Error Resume Next
Dim Success As Boolean
success= false
Dim fit As string
fit=”'用户名='“
fit =fit +txtUserName.text +"'"
Data2.Recordset.FindFirst fit
if Data2.Recordset.findFirst fit
if Data2.Recordset.NoMatch then
success=False
MsgBox "该用户不存在",vbcritical
Exit Sub
else
On Error Goto enter
Dim Error As String
OldPas=Data2.Recordset.fields("用户密码").value
if OldPas=txtPassword.txt then
enter:
success =true
UsrName=txtUserName.Text
UsrPas=txtPassword.text
pwrivew=Data2.recordset.field("用户权限")
else
success=false
end if
end if
if success=false then
msg "密码错误,再试一次",vbExclamation,"登陆"
txtPassword.setFocus
TxtPassword.selstart=0
txtPassword.sellength=len(txtPassword.text)
exit sub
else
ok=true
me.hide
end if
end sub
这个emp_id字段应该要符合以下规则:
字符长度是9,前三个是字母,中间五个是数字,最后一个字符应该是F或者M
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim connstr As String
Dim id, fname, lname As String
Dim isadded As Booleanconnstr = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=false;User ID=sa;Initial Catalog=pubs;Data Source=CPQ"
conn.ConnectionString = connstr
conn.Openrs.CursorType = adOpenKeyset
rs.LockType = adLockOptimistic
rs.Open "employee", conn, , , adCmdTable
id = Trim(Text1.Text)
fname = Trim(Text2.Text)
lname = Trim(Text3.Text)If (id <> " ") And (fname <> " ") And (lname <> " ") Then
sqlstr = "insert into employee (emp_id,fname,lname) values('" & id & "','" & fname & "','" & lname & "')"
Debug.Print sqlstr
conn.execute sqlstr
isadded = True
MsgBox "new record:" & id & " " & fname & " " & lname & "!"""
Else
MsgBox "please inter id,fname,lname"
End Ifconn.execute "delete from employee where emp_id='" & id & "'"
rs.Close
conn.Close
End Sub