启动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执行,无效的外部过程

解决方案 »

  1.   

    你的数据库没有写吧,database="",这里不能为空,还有数据源没有, data sourse="local"
      

  2.   

    不是的,我想通过连接之后,然后再写语句建立数据库,如果我现在把database="gzjs",gzjs却根本没有数据库实体,那样不行吧?
      

  3.   

    数据库建立的时候,请问,我应该通过企业管理器直接建,
    能不能直接在vb的界面下建,另别通过VB6.0的ADO访问sql2000,上面的连接方式正确吗?
    为什么有些是通过provider建,究竟应该怎样写?
      

  4.   

    先连 master 数据库,再建gzjs
      

  5.   

    不是的,我想通过连接之后,然后再写语句建立数据库,如果我现在把database="gzjs",gzjs却根本没有数据库实体,那样不行吧?
    =================================================================================
    Tiger_Zhao(VB老鸟)是正解
      

  6.   

    小麦同志,多谢你的回应,先交的朋友!
    你说的我已经能够通过ADO做到了!但是我现在想做的是在VB6.0中怎样能直接连接到master库,并建立数据库,访问数据库,就具体上面Tiger_Zhao(VB老鸟)给的意见,我也知道是正确的,但是怎样具体做呢?我就不太清楚,如我选Microsoft ActiveX Data Objects 2.5 Library具体该怎么做呢?
      

  7.   

    我这儿有建库的原代码,你要的话留你的Email我给你Mail过去
      

  8.   

    先连MASTER
    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")
      

  9.   

    Dim conn As New ADODB.Connection '定义数据库对象
    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
    调试,无效的外部过程!我想这些语句应该没有错,究竟是哪里错了呢!
      

  10.   

    Private Sub btnCreateDatabase_Click(ByVal sender As System.Object, _
    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
      

  11.   

    to :Tonezhu(唐狼) 
        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
      

  12.   

    全部是连接的哪一行,即:conn.open "...   "
    或 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&"'"这二句语法错误,
    总之,就是记录没有增加,怎样改才有效!
      

  13.   

    conn.execute "insert into employee (emp_id,fname,lname) values('" & id & "','" & fname & "','" & lname & "')"
      

  14.   

    to nix_shi(风之影):
    按你意见,把
    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&"
    运行,语法错误!
      

  15.   

    private Sub cmdOK_click()
    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
      

  16.   

    conn.execute "insert into employee (emp_id,fname,lname) values('" & id & "','" & fname & "','" & lname & "')"这个语句绝对没有错误,可是因为你使用的是数据库pubs中的employee表,这个emp_id字段类型是系统自定义的数据类型,可能你的"id"值不符合这个自定义数据类型.
    这个emp_id字段应该要符合以下规则:
    字符长度是9,前三个是字母,中间五个是数字,最后一个字符应该是F或者M
      

  17.   

    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.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
      

  18.   

    大家帮我看一看http://community.csdn.net/Expert/topic/4041/4041745.xml?temp=.8164942吧,这个贴我先结了!分很少啊!