着急 帮帮忙

csdnbanqiliao 2003-05-06 01:58:38
我想把对Access库的基本操作(Delete,AddNew,Update,Edit)等封装到一个DLL中,该怎么办啊?
开始的想法:
在clsMyData中
private daoDB as dao.database
private daoRS as dao.recordset

private nFieldname as string '用来确定连接的表名
private nDBpath as string '用来确定数据库路径

public property let FieldName(byval newfieldname as string)
nfieldname=newfieldname
end property

public property let DBpath(by val ... '与Fieldname let 相似

public Sub Connect()
'此方法用来连接数据库,但必须先把Fieldname和DBpath附值
end sub


但是这样我就觉得直接用DAO多好啊,到底应该把什么给DLL定义哪些属性和方法呢, 或者不封装DAO,那DLL到底应该怎么写什么呢,迷茫中~~
谢谢指教
...全文
39 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnbanqiliao 2003-05-08
  • 打赏
  • 举报
回复
同意楼上 我也不想写啊 但是 老师要 没有办法 :(
chenyu5188 2003-05-07
  • 打赏
  • 举报
回复
用ADO不一定写类或DLL来做。
就像楼上提供的每个操作写成一个函数不是也很好吗??!!

我有一个ADO类。
你的邮箱是什么?我发给你
csdnbanqiliao 2003-05-07
  • 打赏
  • 举报
回复
唉 怎么没有人愿意帮忙吗? 再等一天 结帐 谢谢 free_eyes
csdnbanqiliao 2003-05-06
  • 打赏
  • 举报
回复
再补充一下 我的问题也就是 “如何用VB编写操作、访问数据库的Active DLL”
csdnbanqiliao 2003-05-06
  • 打赏
  • 举报
回复
先收藏 一会回去看 再网吧了 没有太多MONEY 感谢啊

还有什么好建议啊 我晚上再来 先走了
自由之眼 2003-05-06
  • 打赏
  • 举报
回复
还有查询
Public Function C_Search(ByVal C_From As Form, ByVal C_TabelName As String, ByVal C_MainField As String, ByVal C_Text As String)
Dim i As Integer
On Error GoTo inerr
Set rs = New ADODB.Recordset
If C_Text = "" Then
GoTo inerr
End If
sqlsa = ""
sqlsa = "select * from " & C_TabelName & " where " & C_MainField & "= '" & C_Text & "'"
rs.Open sqlsa, conn, adOpenKeyset
'如果查询出值,则按扣的计算状态为已计算
'If rs.RecordCount > 0 Then
' HasChanged = True
'End If
C_From.Text2.Text = rs.Fields(0).value
For i = 0 To C_From.Text1.Count - 1
C_From.Text1(i).Text = rs.Fields(i + 1).value
Next i
rs.Close
inerr:
Set rs = Nothing
End Function
自由之眼 2003-05-06
  • 打赏
  • 举报
回复
我是直接用控件数组的方法来做的.
封装是用ADO的.

Public Function C_Insert(ByVal C_Form As Form, ByVal C_TabelName As String, ByVal C_Text As String)
'添加数据库内容
On Error GoTo ine
Dim C_Temp As String
sqlinsert = ""
sqlinsert = "insert into " & C_TabelName & " values('" & C_Text & "',"
For i = 0 To C_Form.Text1.Count - 1
Select Case i
'Case 10, 13, 20
' sqlinsert = sqlinsert & "'" & Format(Text1(i).Text, "m/d/yyyy") & "',"
Case Else
sqlinsert = sqlinsert & "'" & C_Form.Text1(i).Text & "',"
End Select
Next i
sqlinsert = Left(sqlinsert, Len(sqlinsert) - 1)
sqlinsert = sqlinsert & ")"
conn.Execute (sqlinsert)
C_Temp = ""
C_Temp = "添加 " & C_TabelName & " '" & C_Text & "' 成功。"
MsgBox C_Temp, , "用户信息"
GoTo inerr
ine:
C_Temp = ""
C_Temp = "添加 " & C_TabelName & " 失败。错误:" & Err.Description & "。"
MsgBox C_Temp, , "错误信息"
inerr:
End Function

Public Function C_Update(ByVal C_Form As Form, ByVal C_TabelName As String, ByVal C_Text As String, ByVal C_MainField As String)
On Error GoTo ine
Dim C_Temp As String
sqlupdate = ""
sqlupdate = C_MainField & " = '" & C_Text & "',"
sqlsa = ""
sqlsa = "select * from " & C_TabelName & " where " & C_MainField & " = '" & C_Text & "'"
Set rs = conn.Execute(sqlsa)
For i = 0 To C_Form.Text1.Count - 1
If Trim(C_Form.Text1(i).Text) = "" Then
sqlupdate = sqlupdate + rs.Fields(i + 1).name & " = '',"
Else
Select Case rs.Fields(i + 1).Type
Case 8
sqlupdate = sqlupdate + rs.Fields(i + 1).name & " = '" & Format(C_Form.Text1(i).Text, "m/d/yyyy") & "',"
Case Else
sqlupdate = sqlupdate + rs.Fields(i + 1).name & " = '" & C_Form.Text1(i).Text & "',"
End Select
End If
Next i
rs.Close

sqlupdate = Left(sqlupdate, Len(sqlupdate) - 1)
sqlupdate = "update " & C_TabelName & " set " & sqlupdate & " where " & C_MainField & " = '" & Trim(C_Text) & "'"
conn.Execute (sqlupdate)
C_Temp = ""
C_Temp = "修改 " & C_TabelName & " '" & C_Text & "' 成功。"
MsgBox C_Temp, , "用户信息"
GoTo inerr
ine:
C_Temp = ""
C_Temp = "修改 " & C_TabelName & " 失败。错误:" & Err.Description & "。"
MsgBox C_Temp, , "错误信息"
inerr:
End Function

Public Function C_Delete(ByVal C_Form As Form, ByVal C_TabelName As String, ByVal C_MainField As String, ByVal C_Text As String)
On Error GoTo ine
Dim C_Temp As String
C_Temp = ""
C_Temp = "确实要删除" & C_TabelName & "吗?"
If MsgBox(C_Temp, vbOKCancel) = vbOK Then
sqldelete = ""
sqldelete = "delete from " & C_TabelName & " where " & C_MainField & " = '" & C_Text & "'"
conn.Execute (sqldelete)
C_Form.Text2.Text = ""
For i = 0 To C_Form.Text1.Count - 1
C_Form.Text1(i).Text = ""
Next i
Else
GoTo inerr
End If
C_Temp = ""
C_Temp = "删除 " & C_TabelName & " '" & C_Text & "' 成功。"
MsgBox C_Temp, , "用户信息"
GoTo inerr
ine:
C_Temp = ""
C_Temp = "删除 " & C_TabelName & " 失败。错误:" & Err.Description & "。"
MsgBox C_Temp, , "错误信息"
inerr:
End Function
csdnbanqiliao 2003-05-06
  • 打赏
  • 举报
回复
都出来说两句啊 怎么了?
csdnbanqiliao 2003-05-06
  • 打赏
  • 举报
回复
我说的不明白吗?哪里不明白啊? 我在线

1,216

社区成员

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

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