| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 977 人关注过本帖
标题:[原创]无码编程MyDesk2.0 不使用数据库控件的数据库访问实例
只看楼主 加入收藏
pyeasy
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-10-31
收藏
 问题点数:0 回复次数:4 
[原创]无码编程MyDesk2.0 不使用数据库控件的数据库访问实例

MyDesk2.0 数据库访问的方法,一直以来都是很多用户讨论的焦点,在这里,我们将以一个简单的“通讯录”的制作过程,详细的为大家介绍如何通过 MyDesk2.0 在不使用数据库控件情形下对数据库的一些操作。当然,如果使用了数据库控件和数据绑定控件,相关做法肯定会更加简单。
程序名称:Address_List.mds
数据库名称:Address_List.mdb
一.数据库中数据查询功能设置:
主要控件说明:复选框(2个),用于确定是否应用相应的数据查询条件。
编辑框,用于数据查询时的条件设置(姓名)。
组合框,用于数据查询时的条件设置(性别)。
列表视图控件,用于显示查询数据结果。
1.界面设置如下:

2.“宏”窗口代码设置说明:
(1)创建数据库连接字符串,源代码如下:
Function OpenConn(ByVal sUserID, ByVal sPass, ByVal sServerName)
'参数说明:sUserID:用户名ID; sPass:用户密码; sServerName:服务器名称
Dim sDir, sDataFile
Call API_GetModuleFileName(0, sDir, 1024 )

'获得应用程序所在目录的完整路径sDir
sDir = Left( sDir, InstrRev(sDir, "\", -1) - 1 )
sDataFile = sDir + "\Address_List.mdb"
'获得 Address_List.mdb 数据库文件所在文件目录sDataFile
Dim sConnStr
sC & sDataFile

'建立数据库连接字符串
Dim conn
set conn = createobject("ADODB.Connection")
conn.open sConnStr
set OpenConn = conn
End Function

(2)打开数据库并执行相应的数据查询,代码如下:
Function OpenRs( ByVal sSql )
Dim rsTemp
Dim itmX
Dim conn
Set conn = OpenConn( "sa", "",sDataFile)
set rsTemp = CreateObject("adodb.recordset")
'建立 recordset 对象
If CheckBox.Value = True And CheckBox1.Value = False Then
sSql = "Select * From Address_List Where Name Like" + "'" + "%" + Name.text + "%" + "'"
Else
If (CheckBox.Value = True And CheckBox1.Value = True) Then
sSql = "Select * From Address_List Where Name Like" + "'" + "%" + Name.text + "%" + "'" + " And Sex Like " + "'" + "%" + Sex.Value + "%" + "'"
Else
If (CheckBox.Value = False And CheckBox1.Value = True) Then
sSql = "Select * From Address_List Where Sex Like" + "'" + "%" + Sex.Value + "%" + "'"
else
If (CheckBox.Value = False And CheckBox1.Value = False) Then
sSql = "Select * From Address_List"
End If
End If
End If
End If

'根据不同的条件设置,选择相应的 SQL 查询语句
rsTemp.Open sSql,conn,1,1
'表示打开数据库的方式
rsTemp.MoveFirst
ListView.ColumnHeaders.Add 1,,"编号"
ListView.ColumnHeaders.Add 2,,"姓名"
ListView.ColumnHeaders.Add 3,,"性别"
ListView.ColumnHeaders.Add 4,,"出生日期"
ListView.ColumnHeaders.Add 5,,"籍贯"
ListView.ColumnHeaders.Add 6,,"住址"
ListView.ColumnHeaders.Add 7,,"联系电话"
ListView.ColumnHeaders.Add 8,,"传真"
ListView.ColumnHeaders.Add 9,,"Email"
ListView.ColumnHeaders.Add 10,,"备注"

'创建10个 ColumnHeader 对象(列),分别用于对应数据库Address_List.mdb 中的字段名
do while not rsTemp.Eof
Set itmX = ListView.ListItems.Add()
itmX.Text = rsTemp("Code")
itmX.SubItems(1) = rsTemp("Name")
itmX.SubItems(2) = rsTemp("Sex")
itmX.SubItems(3) = rsTemp("Birthday")
itmX.SubItems(4) = rsTemp("Nation")
itmX.SubItems(5) = rsTemp("Address")
itmX.SubItems(6) = rsTemp("Phone")
itmX.SubItems(7) = rsTemp("Fax")
itmX.SubItems(8) = rsTemp("Email")
itmX.SubItems(9) = rsTemp("Remark")
rsTemp.MoveNext
Loop
'将查询所得到的数据分别给到所对应的列中
rsTemp.close
Set RsTemp = Nothing
conn.close
set conn = Nothing

'这几句是用来关闭数据库的
End Function
Function Delete()
ListView.ListItems.Clear()
ListView.ColumnHeaders.Clear()

'用来清空 ListView 控件中的数据
End Function
(3)该自定义函数用于 ListView 控件的 DbClick 双击事件,打开修改界面并将相应的数据传给修改界面中,代码如下:
Function Amend()
Dim iNumber
iNumber = ListView.SelectedItem

'将ListView 控件的SelectedItem 属性值赋给iNumber
Dim rsTemp
Dim itmX
Dim conn
Set conn = OpenConn( "sa", "", sDataFile)
set rsTemp = CreateObject("adodb.recordset")

'创建 recordset 对象
sSql = "Select * From Address_List Where Code =" + iNumber
'设置 SQL 查询语句
rsTemp.Open sSql,conn,1,1
'表示打开数据库的方式
rsTemp.MoveFirst
Dim sCode,sName,sSex,sBirthday,sNation,sAddress,sPhone,sFax,sEmail,sRemark
sCode = ""
sName = ""
sSex = ""
sBirthday = ""
sNation = ""
sAddress = ""
sPhone = ""
sFax = ""
sEmail = ""
sRemark = ""
do while not rsTemp.Eof
sCode = rsTemp("Code")
sName = rsTemp("Name")
sSex = rsTemp("Sex")
sBirthday = rsTemp("Birthday")
sNation = rsTemp("Nation")
sAddress = rsTemp("Address")
sPhone = rsTemp("Phone")
sFax = rsTemp("Fax")
sEmail = rsTemp("Email")
sRemark = rsTemp("Remark")
rsTemp.MoveNext
Loop
'定义变量,用于存放查询所得数据的各字段值
rsTemp.close
Set RsTemp = Nothing
conn.close
set conn = Nothing

'关闭数据库
Call Form.OpenForm("Rework",1,0,sCode,sName,sSex,sBirthday,sNation,sAddress,sPhone,sFax,sEmail,sRemark,iNumber)
'调用窗体 Form 的 OpenForm 函数,打开并传递所列参数给 Rework 窗体
End Function
3.控件事件设置:
(1)”查询”按钮的 Click 事件设置:
Delete() '调用自定义函数 Delete ,用于每次查询前清空 ListView 控件的数据
Call OpenRs("") '调用自定义函数 OpenRs ,用于查询显示数据结果
(2) ListView 控件的DbClick 事件设置:
作用:用于通过鼠标双击打开修改界面,并数据定位到鼠标双击的数据。
Amend() '调用自定义函数 Amend ,用于打开修改界面并定位显示数据.
二.数据库中数据新增功能设置:
1.界面设置如下:

2.“宏”窗口代码设置说明:
(1)创建数据库连接字符串,源代码如下:
Function OpenConn()
Dim sDir, sDataFile, hFile
Call API_GetModuleFileName(0, sDir, 1024 )
sDir = Left( sDir, InstrRev(sDir, "\", -1) - 1 )
sDataFile = sDir + "\Address_List.mdb"
Dim sConnStr
sC & sDataFile
Dim conn
set conn = createobject("ADODB.Connection")
conn.open sConnStr
set OpenConn = conn
End Function

(2)输入数据保存并写如数据库设置,源代码如下:
Function Save
Set conn = OpenConn()
set rs = CreateObject("adodb.recordset")

'建立recordset对象
sqlstr="select * from Address_List"
'Address_List为数据库中的一个数据表,即你要显示的数据所存放的数据表
rs.open sqlstr,conn,1,3
'表示打开数据库的方式
rs.addnew
'新增加一条记录
rs("Name")= Name.Text
'将Name.Text的值传给Name字段
If Boy.Value = True Then
rs("Sex") = "男"
Else
rs("Sex") = "女"
End If
rs("BirthDay")= BirthDay.Year & "-" & BirthDay.Month & "-" & BirthDay.Day
rs("Nation")= Nation.Text
rs("Address")= Address.Text
rs("Phone")= Phone.Text
rs("Fax")= Fax.Text
rs("Email")= Email.Text
rs("Remark")= Remark.Text
'将各控件的值传给相应的字段.
rs.update
'刷新数据库
rs.close
set rs=nothing
conn.close
set conn=nothing
'这几句是用来关闭数据库的。
End Function
3.控件事件设置:
(1)复选框(男) Change 事件设置:
If (Boy.Value = True) Then
Girl.Value = False
Else
End If

复选框(女) Change 事件设置:
If (Girl.Value = True) Then
Boy.Value = False
Else
End If

(2)”保存”按钮 Click 事件设置:
If (Name.Text = "") Then [color=#3300ff]'确保保存数据不为空数据
Else
Save() '调用自定义函数 Save
End If
Name.Text = ""
Nation.Text = ""
Address.Text = ""
Phone.Text = ""
Fax.Text = ""
Email.Text = ""
Remark.Text = ""
BirthDay.Year = 2000
BirthDay.Month = 01
BirthDay.Day = 01
Girl.Value = True[/color]
'数据保存后清空相应控件值以及定义控件默认值
三.数据库中数据修改以及删除功能设置:
1.界面设置如下:

2.“宏”窗口代码设置说明:
(1)创建数据库连接字符串,源代码如下:
Function OpenConn()
Dim sDir, sDataFile, hFile
Call API_GetModuleFileName(0, sDir, 1024 )
sDir = Left( sDir, InstrRev(sDir, "\", -1) - 1 )
sDataFile = sDir + "\Address_List.mdb"
Dim sConnStr
sC & sDataFile
Dim conn
set conn = createobject("ADODB.Connection")
conn.open sConnStr
set OpenConn = conn
End Function

(2)修改各字段所对应的数据,代码如下:
注意:修改与数据新增代码之间的差别在于,修改是在源数据上操作,而数据新增是首先新增加一条空记录,然后再将数据写入该空记录中的操作。
Function Save
Set conn = OpenConn()
set rs = CreateObject("adodb.recordset")
'建立recordset对象
sqlstr="select * from Address_List Where Code =" + iNumber
'Address_List为数据库中的一个数据表,即你要显示的数据所存放的数据表
rs.open sqlstr,conn,1,3
'表示打开数据库的方式
rs("Name")= Name.Text
'将Name.Text的值传给Name字段
If Boy.Value = True Then
rs("Sex") = "男"
Else
rs("Sex") = "女"
End If
rs("BirthDay")= BirthDay.Year & "-" & BirthDay.Month & "-" & BirthDay.Day
rs("Nation")= Nation.Text
rs("Address")= Address.Text
rs("Phone")= Phone.Text
rs("Fax")= Fax.Text
rs("Email")= Email.Text
rs("Remark")= Remark.Text
'将各控件的值传给相应的字段
rs.update
'刷新数据库
rs.close
conn.close

'这几句是用来关闭数据集及连接
set rs=nothing
set conn=nothing
End Function

(3)数据删除操作设置,代码如下:
Function Delete
Set conn = OpenConn()
set rs = CreateObject("adodb.recordset")
'建立recordset对象
sqlstr="DELETE from Address_List Where Code =" + iNumber
'删除查询所得出的数据
rs.open sqlstr,conn,1,3
'表示打开数据库的方式
End Function
3.控件事件设置:
各按钮控件分别调用相应的修改与删除的自定义函数即可。
四.附录:
(1)创建Sql Server 数据库连接字符串,源代码如下:
'Connect to a Sql Server Database
Function OpenConn(ByVal sUserID, ByVal sPassWord, ByVal sDBName, ByVal sServerName)
'Parameter
'sUserID:User's ID
'sPassWord: User's Pasworld
'sDBName: DatbaseName
'sServerName: Sql Server Name
Dim ConnString, conn
C & sPassWord & ";Persist Security
Info=True;User ID=" & sUserID &";Initial Catalog = " & sDBName &"; Data Source=" & sServerName
'Connection String
set conn= createobject("ADODB.Connection")
conn.open ConnString
set OpenConn=conn
End Function

(2)创建 Oracle 数据库连接字符串,源代码如下:
Function OpenConn( ByVal sUserID, ByVal sPassWord )
'参数说明
'sUserID:用户名ID
'sPassWord:用户密码
Dim ConnString , conn
C & sPassWord &";User ID=" & sUserID &
";Persist Security Info=True"
'建立数据库连接字符串
set conn= createobject("ADODB.Connection")
conn.open ConnString
set OpenConn=conn
End Function


(3)创建 Access 数据库连接字符串,源代码如下:
[color=#ff6600]'Connect to a Access Database
Function OpenConn( ByVal sUserID, ByVal sPassWord, ByVal sDBFile )
'Parameter
'sUserID: User's ID
'sPassWord: User Passworld
'sDBFile:DabaseName
Dim ConnString, conn
C & sPassWord & ";Data Source = "& sDBFile &";Persist Security Info=True"
'Connection String
set conn= createobject("ADODB.Connection")
conn.open ConnString
set OpenConn=conn
End Function

[/color]

搜索更多相关主题的帖子: 数据库 控件 实例 Address List 
2006-11-23 13:02
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
顶..顶

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-11-23 13:02
pyeasy
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-10-31
收藏
得分:0 
不用写代码就可以做任何您想要做的应用程序,无论是常规应用、系统、网络与互联网、多媒体、数据库,还是游戏,等等。
2006-11-27 10:19
爱国主意
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-12-1
收藏
得分:0 
是不是真的无码编程?采用什么语言?
2006-12-01 10:27
pyeasy
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-10-31
收藏
得分:0 
MyDesk 2.0是世界上第一个真正的通用无码编程软件,它不需要使用任何计算机语言,就能建立完全个性化、专业的计算机应用程序。是一个高效的软件工厂,大量标准的ActiveX控件是它的零配件,因而合理有效地组织和使用不同的ActiveX控件,就可以实现不同的应用功能,因而它是一个可以无限扩大的系统。换句话来说,只要有零件,它就可以生产任何软件产品。使用完整高效的所见即所得技术和智能化技术,所有设计过程都可通过简单的鼠标点击、拖动或选取即可完成,并可立即生成结果运行、发布。融合了众多应用程序的风格与需求,其生成的应用程序多种多样,极具专业性,并可由最终用户进行必要的二次扩展。生成的软件产品就像使用普通软件开发工具通过代码生成的软件产品一样,是完全独立的应用程序,它不必依附于MyDesk 2.0本身就能独立运行。
给更多的人创造了编程序的条件,使DIY软件变得可能。几乎三岁的小孩都能做自己的电脑程序。
2006-12-04 09:37
快速回复:[原创]无码编程MyDesk2.0 不使用数据库控件的数据库访问实例
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024284 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved