Office中国论坛/Access中国论坛
标题:
关于数据库2007的前后台制作的问题
[打印本页]
作者:
williamwangc
时间:
2011-10-18 07:36
标题:
关于数据库2007的前后台制作的问题
前段时间一直在研究ACCESS前后台,学习了“咱家是猫”版主的前后台拆分实例,一直在前后台分享这里卡住,存在大概这样的问题。
1.一开始我以为分发数据库就是把前台复制一下就可以了,结果我发现当被复制的前台希望引用我网络映射的后台时会出现前台无权进入后台的网络映射盘,现在我认为可能原因就是前台没有分.发的原因。
2.我现在正在学习打包、签名和分发,大致是明白了打包和签名,但对于分发过程中,签名包的使用的作用和最后“将数据库提取到”是什么意思。
3.对于“咱家是猫”示例中最后一句前台分发,我现在理解就是
前台
的打包、签名和分发,另外“将数据库提取”是不是就是引用后台呢?
4.另外是不是前台一个前台使用者就要创建一个前台的签名的证书及相应的签名包,也就是ACCEC文档,我还要给前台使用者一个ACCEB和一个ACCEC呢?
5.此外我后面还要做什么吗?
作者:
yanghua1900363
时间:
2011-10-18 08:10
我用的是红尘版主的前后台模式,也遇到了把前台复制到局域网中的另一台电脑就连接不到后台数据库的问题,倒腾了几次一直没有成功。希望有经验的朋友点拨一下。多谢!
作者:
williamwangc
时间:
2011-10-18 10:47
本帖最后由 williamwangc 于 2011-10-18 10:48 编辑
我又好好想了想,觉得第三条中分发过程中“将数据库提取”估计应该就是通过证书(即ACCDC)对复制的前台ACCESS.ACCDB进行前台的添加信任处理。我不知道这样的理解对不对?我想这样理解整个签名、打包和分发的逻辑就通顺了。
签名:只是一个事先的授权证明签名而已。
打包:可能就是一个经过签名的前台,进行布置和合并,好比就是一个完整的合同文本和签名。
分发:其实就是对授权的前台和合同进行信任认证的一个过程。
最后受信任的前台就可以对后台进行操作。当然是对前台已指定的路径的后台进行操作,而“咱家是猫”版主前后台拆分的那个教程做的其实就是一个拆分和指定路径的过程。
简而言之:“咱家是猫”拆分前后台的目的是明确前后台路径,而分发其实的目的是签署可信任的前台,是指可以操作而非直接复制的前台的非法独占操作错误(即自己拆分的前后台只能在自己的机器上进行前后台操作,但别人即使从你机器上复制了前台也不允许在别人的机器上操作的安全设置)。
不知道我这样的理解对不对?
作者:
zhuyiwen
时间:
2011-10-18 10:59
链接表实际上很类似视图(查询),本身没有数据,而是把目标数据库中的数据表映射到当前数据库中,因此,链接表是否能正常使用最关键的就是链接表的配制信息。
一般链接表的属性包括:
1、数据库类型,如:ODBC、ACCESS...
2、数据库,如:...
3、用户名和密码
其中,2 中数据库是很灵活的。像你说的分拆出来的后台数据库,那么,数据库类型,就是ACCESS,而数据库则是后台数据库文件的存储路径,如:本地 c:\Data\backend.mdb,远程\\DataSvr\Data\backend.mdb。也就远程是共享文件夹,那么在使用以前,你必须要能正常访问这个文件夹,并具有对这个文件中的文件有读写的操作权限,而这个东西的设置不属于Access的东西,因此,在你使用前必须达到上述条件才能使用。
重新设置链接表的属性,你需要用到 DAO 中的 TableDef.RefreshLink 方法。
示例:
Sub RefreshLinkX()
Dim dbsCurrent As Database
Dim tdfLinked As TableDef
' Open a database to which a linked table can be
' appended.
Set dbsCurrent = OpenDatabase("DB1.mdb")
' Create a linked table that points to a Microsoft
' SQL Server database.
Set tdfLinked = _
dbsCurrent.CreateTableDef("AuthorsTable")
' Note: The DSN referenced below must be configured to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
tdfLinked.Connect = _
"ODBC;DATABASE=pubs;DSN=Publishers"
tdfLinked.SourceTableName = "authors"
dbsCurrent.TableDefs.Append tdfLinked
' Display contents of linked table.
Debug.Print _
"Data from linked table connected to first source:"
RefreshLinkOutput dbsCurrent
' Change connection information for linked table and
' refresh the connection in order to make the new data
' available.
' Note: The DSN referenced below must be configured to
' use Microsoft Windows NT Authentication Mode to
' authorize user access to the Microsoft SQL Server.
tdfLinked.Connect = _
"ODBC;DATABASE=pubs;DSN=NewPublishers"
tdfLinked.RefreshLink
' Display contents of linked table.
Debug.Print _
"Data from linked table connected to second source:"
RefreshLinkOutput dbsCurrent
' Delete linked table because this is a demonstration.
dbsCurrent.TableDefs.Delete tdfLinked.Name
dbsCurrent.Close
End Sub
Sub RefreshLinkOutput(dbsTemp As Database)
Dim rstRemote As Recordset
Dim intCount As Integer
' Open linked table.
Set rstRemote = _
dbsTemp.OpenRecordset("AuthorsTable")
intCount = 0
' Enumerate Recordset object, but stop at 50 records.
With rstRemote
Do While Not .EOF And intCount < 50
Debug.Print , .Fields(0), .Fields(1)
intCount = intCount + 1
.MoveNext
Loop
If Not .EOF Then Debug.Print , "[more records]"
.Close
End With
End Sub
复制代码
上述是帮助中链接到SQL Server数据库的例子
你可以在本论坛上搜索一下“
链接表
”,可以找到很多这个方面的例程。
如:
zhengjialon做的自动链接表,我等菜鸟的必备利器!
作者:
williamwangc
时间:
2011-10-19 09:13
我用ACCESS2007建立了一个测试的2003版本的前后台的数据库,经过测试已成功。(用的是“咱家是猫版”主的方法)。估计原因正是你说的权限的问题。
作者:
williamwangc
时间:
2011-10-19 21:49
现在前后台成功,我又有了新的疑问,想问一下。
1.前台输入,会不会产生N人基本同时输入,结果其中某人认为自己已输入,但实际未输入的情况发生?如果会发生是否有什么方法可以避免,抑或系统会自动排序和避免此种情况的发生?
2.如果拆分的数据库,那原来编写的代码,尤其是和现在的后台相关的数据处理的代码(如SQL,DAO,ADO代码)是否会失效?
3.如果失效我应如何对原有代码进行修正呢?
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3