本人在学做超市管理系统的时候遇到连接问题,不管是前台和后台的连接都是一样,我上网查询了,估计应该是与数据库连接的问题,还请高人指点。所用的软件是VB6.0,数据库是SQL server 2000;
Public Function QueryExt(ByVal TmpSQLstmt As String) As ADODB.Recordset '执行数据库查询语句
Dim rst As New ADODB.Recordset
DB_Connect '连接到数据库
Set rst.ActiveConnection = cnn '设置rst的ActiveConnection属性,指定与其关联的数据库连接
rst.CursorType = adOpenKeyset
rst.LockType = adLockOptimistic '设置锁定类型
rst.Open TmpSQLstmt '打开记录集
Set QueryExt = rst '返回记录集
End Function 系统在调试的时候提示以上红色字段,数据库的路径为:E:\Tool\Microsoft SQL Server\MSSQL$HRJ664973693\Data下的SuperMarket,注意:系统默认是SuperMarket,而本人在编辑的时候却写成了SuperMarker,一个是t,一个是r,请问该怎样改?我的数据库(SuperMarker)前台已创建完整的表,如果需要全文代码查看的请告之下。在线求解,谢谢了!
VBSQL ActiveConnection属性
Public Function QueryExt(ByVal TmpSQLstmt As String) As ADODB.Recordset '执行数据库查询语句
Dim rst As New ADODB.Recordset
DB_Connect '连接到数据库
Set rst.ActiveConnection = cnn '设置rst的ActiveConnection属性,指定与其关联的数据库连接
rst.CursorType = adOpenKeyset
rst.LockType = adLockOptimistic '设置锁定类型
rst.Open TmpSQLstmt '打开记录集
Set QueryExt = rst '返回记录集
End Function 系统在调试的时候提示以上红色字段,数据库的路径为:E:\Tool\Microsoft SQL Server\MSSQL$HRJ664973693\Data下的SuperMarket,注意:系统默认是SuperMarket,而本人在编辑的时候却写成了SuperMarker,一个是t,一个是r,请问该怎样改?我的数据库(SuperMarker)前台已创建完整的表,如果需要全文代码查看的请告之下。在线求解,谢谢了!
VBSQL ActiveConnection属性
检查一下有没有引用ADO
改为:
public cnn As ADODB.Connection
试试
Public Sub DB_Connect() '使用Connect_Num控制数据库连接
public cnn as new adodb.connection
with cnn
If .State = adStateOpen Then .Close
.ConnectionString = "driver=SQL Server;server=计算机名或IP地址;uid=SA;pwd=SA的密码;database=数据库名"
.CommandTimeout = 0
.Open
End With
End Sub
按你所给的试着改,结果是找不到数据源,我上网查了我原代码是没问题的,数据库是采用一种动态的连接方式,如下:Private Sub Connect() '连接数据库
If IsConnect = True Then '如果连接标记为真,则返回。否则会出错
Exit Sub
End If
On Error GoTo DbOpenErr
Set cnn = New ADODB.Connection '关键New用于创建新对象cnn
With cnn
.Provider = "sqloledb"
.ConnectionString = "data source=.;initial catalog=SuperMarket;user id=sa;password=;"
.ConnectionTimeout = 10
.Open
End With
IsConnect = True '设置连接标记,表示已经连接到数据库
Exit Sub
DbOpenErr:
If err = -2147467259 Then
Set cnn = Nothing
MsgBox "连接MS SQL Server数据库失败!" & vbCrLf & vbCrLf & "请检查配置是否完好,数据库SuperMarket是否存在?", vbOKOnly + vbInformation, "超市前台POS管理系统"
End
End If
End Sub 如果说有问题,那也是我SQL上的关系图未建立,数据库里已经有表了。
2,如果SQL不是本机,则确认SQL所在机器的防火墙是否关闭且SQL补丁是否为最新
3,将data source=. 改为 data source=SQL实例名 再试试
Dim strConn As String
Dim pubConn As New ADODB.Connection
Dim rsTable As New ADODB.Recordset
Dim strSQL As String 'Access 2000的連接
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "/North.mdb;Persist Security Info=False"
'SQL Server2000的連接
strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=develop; password=12345;Data Source=ServerName"
pubConn.Open strConn rsTable.CursorLocation = adUseClient
strSQL = "select * from TableName"
rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
Set DataGrid1.DataSource = rsTableEnd Sub
怎么改,我的cnn内容是:
Private Sub Connect() '连接数据库
If IsConnect = True Then '如果连接标记为真,则返回。否则会出错
Exit Sub
End If
On Error GoTo DbOpenErr
Set cnn = New ADODB.Connection '关键New用于创建新对象cnn
With cnn
.Provider = "sqloledb"
.ConnectionString = "data source=.;initial catalog=SuperMarket;user id=sa;password=;"
.ConnectionTimeout = 10
.Open
End With
IsConnect = True '设置连接标记,表示已经连接到数据库
Exit Sub
DbOpenErr:
If err = -2147467259 Then
Set cnn = Nothing
MsgBox "连接MS SQL Server数据库失败!" & vbCrLf & vbCrLf & "请检查配置是否完好,数据库SuperMarket是否存在?", vbOKOnly + vbInformation, "超市POS前台管理系统"
End
End If
End Sub 我觉得就是与数据库连接的问题,请问数据库的表是否需要建立数据?