卡拉OK字幕着色动态显示
1.CLIENT/SERVER?到底是什么
C/S属于2层体系,适用于中小型应用系统。大型系统通常使用三层架构。
例如,一个独立的数据库系统(如VFP)相当于一个前台存储和一个后台存储。如果你需要店里的东西,你得去仓库,自己管理仓库。在C/S系统下,商店和仓库相对独立,有专门的仓库管理(数据服务器)。如果你需要店里的东西,按照程序把单子交给仓库经理。
因此,我们可以看到C/S的优势:支持多用户;更有效的数据管理,更安全、更可靠的数据;远程使用数据。
如果你是单机,当然没必要用C/S。
如果VFP本身作为C/S系统使用,效果并不明显,因为VFP的数据管理功能不是很强。比如锁定和解锁都需要程序来操作。我主要讲一下VFP/SQL SERVER系统。
2.数据库
SQL SERVER是微软发布的RDBMS(关系数据库管理系统),ORACLE,INFOMIX,POWERBUILD,都是类似的系统。它们相当于仓库管理系统,但其功能不仅仅是数据管理。微软的数据库产品从功能到规模降序排列为:ACCESS、VFP、SQL SERVER。
稍微大一点的系统,SQL SERVER,需要有人来管理。这是DBA(数据库管理员)的职位。现在在北美人才市场,DBA的工作比程序员更好找。工资比普通程序员略高,工作稳定性更强。
SQL SERVER是一个大型的软件系统,可以安装在专用的NT数据服务器上,也可以在WIN95/98上安装个人版,主要是为了方便我们程序员。其功能如下:数据库管理和维护、用户/安全管理、数据发布/转换。
3.采用VFP/SQL SERVER的C/S系统
VFP和SQL SERVER的结合应该是完美的,但由于VB是微软的主流产品(VB一直是微软的,FOXPRO是后来买的,她的后妈也是后来生的),微软一直没有大力推荐或宣传VFP,而是将其独有的数据库技术融入到其他产品中:SQL SERVER、ODBC、OLE DB/ADO。最近,就连VFP也从VISUAL STUDIO中独立出来了。
VFP与SQL SERVER的通信可以通过三种方式进行:
A .远程查看B. ADO控件C. SPT (SQL穿越)
三种方法各有利弊,我更喜欢第三种。远程视图和ADO都在VFP和SQL SERVER之间增加了一层,这一层相当于一个黑盒。你不知道他们到底是怎么操作数据的,只是按照他们的规则设置,使用
相应的命令。反正作为一个程序员,我喜欢清楚地知道我的程序每一步都在做什么,所以我喜欢用SPT。
SPT技术是通过VFP的函数SQLCONNECT()与SQL SERVER建立连接,然后利用SQLEXEC()函数将需要执行的SQL命令发送给SQL SERVER执行。
所有的数据操作都是通过这些SQL命令进行的。每个细节都由你自己的代码控制。
4.推广VFP数据
VFP的数据库可以通过使用VFP自己的推广向导直接转移到SQL SERVER,但是所有的表都必须放在数据库中。自由表不能直接提升,但实际上提升的只是表,数据库本身不能转移到SQL SERVER。感觉怪怪的。也许是为了推广指数或者关系。
若要将VFP数据提升到SQL SERVER,必须在SQL SERVER中建立相应的数据库。SQL SERVER的管理是通过企业管理器(EM)执行的。通过它可以建立数据库,每个数据库可以包含数据表、用户/用户组、视图、存储过程等等。
至于SQL SERVER的使用,原来的VFP程序肯定需要修改,这是一个很大的变化。
* * * * * * * * * * * * * * * *
浅谈VFP的C/S系统和SQL SERVER(二)——动态设置ODBC连接
1。设置ODBC数据源
VFP和SQL SERVER之间的连接是通过ODBC或OLE DB(ADO)实现的。你可以打开控制面板的ODBC数据源来设置它。但是,很多情况下,我们希望在程序中动态设置数据源。首先,我们不必为每个用户的机器手动设置它。第二,为了数据安全,我们希望在使用后删除ODBC数据源。
以下示例使用API函数来设置和删除ODBC数据源。
函数名为SQLConfigDataSource,其中第二个参数是一个数字(1- add 2- modify 3- delete)。
在odbccp32中声明整数SQLConfigDataSource INTEGER,INTEGER,STRING,STRING
window handle = 0
lcodbdriver = ' SQL Server ' & & driver type
lcodbname = ' shared data ' & & data source Name
lcodbdesc = ' shared data source ' & & data source description
LCODBC Server = ' devsql ' & & SQL Server Name
LCODBC Database = ' shared ' & &要连接的数据库的名称
* *首先尝试修改已有的ODBC,如果不存在,返回0。
lreturn = SQLConfigDataSource(lnwindow handle,2,lcODBCDriver,;
' DSN = '+lcODBCName+CHR(0);
+' Description = '+lcODBCDesc+CHR(0);
+' Server = '+lcODBCServer+CHR(0);
+' database = '+LCODBCDatabase+CHR(0)]
如果LReturn = 0&&不存在
* *添加新的ODBC
lre turn = sqlconfigDataSource(ln窗口句柄,1,1
' DSN = '+lcODBCName+CHR(0);
+' Description = '+lcODBCDesc+CHR(0);
+' Server = '+lcODBCServer+CHR(0);
+' database = '+lco DBC database+CHR(0))
if l return = 0 & & failed
MessageBox('添加ODBC数据源失败',16,' buffer')
Endif
。
0条评论