
正文
sqlserver与vfp 操作员SQLSERVER
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
SQL Serxer与VF的联系与区别
SQL Server是真正的中大型数据库,只能作为后台使用.需另外的前台开发工具配合才能完成应用.
它更适合中、大型专业管理应用。
VFP是小型的桌面数据库,使用方便、易学,但实际上牺牲了真正数据库的一些功能,如安全性;但是,VFP本身具有数据库和前台程序的开发功能,也是前台界面开发工具。
vfp同样可以使用常用的SQL结构化查询语言。
vfp即可以将程序编译后执行,也可以以解释语言的型式,在VFP操作界面中即时处理日常办公问题。
相关问答
Q1: VB,VFP,SQL SERVER互相操作问题
1)vb 操作 foxpro
strDSN = "FILEDSN=WORDFOX.dsn" 'WORDFOX.DSN 先建好
Set cn = CreateObject("ADODB.Connection")
cn.Open strDSN
Set OBJCMD = CreateObject("ADODB.Command")
OBJCMD.ActiveConnection = cn
Set rs = CreateObject("ADODB.Recordset")
SQLSTRING = "select id from test where dd='kk'"
rs.Open SQLSTRING, cn, 3, 4
If Not rs.EOF Then
Qdid = rs("id")
End If
rs.Close
2)fox 操作sqlserver 或 access 注Remote Sql 是数据源指向你的SQLSEERVER服务器
STORE SQLCONNECT('Remote Sql', 'USERNAME','CPASSWORD') TO gnConnHandle
IF gnConnHandle = 0
= MESSAGEBOX('Cannot make connection', 16, 'SQL Connect Error')
ELSE
= SQLSETPROP(gnConnHandle, 'asynchronous', .F.)
sqlstatment="UPDATE ZKC SET SM='sss'' WHERE BM = '55339'"
if SQLEXEC(gnConnHandle,sqlstatment,"LS")1
MESSAGEBOX("远程服务器插入失败!")
endif
= SQLDISCONNECT(gnConnHandle)
SQLserver 和 ACCESS是数据库
Q2: VFP连接SQL server 的问题
VFP是通过ODBC连接SQLSERVER。
既然打开企业管理器就行,说明ODBC+VFP没有问题
问题出现在SQLSERVER设置上,具体的我这里没法查;
我建议你重新安装SQLSERVER,等于重新初始化环境
因该不会再出现问题。
Q3: 在VFP里来操作和管理SQL-SERVER
用VFP和SQL SERVER来做系统的网友越来越多。怎么从VFP里来操作或者管理SQL SERVER也成为很多人关心的问题。 对SQL SERVER的数据操作,可以用视图,SPT或者ADO来做,但对服务器本身的管理,似乎只有用SPT来发送一些命令了。其实, 微软为客户端操作SQL SERVER开发了一套完整的工具, 这就是SQL - DMO (Distributed Management Objects). 这是一套COM组件,可以在各种语言里使用, VFP里自然也可以用了。
我准备花点时间,写些这方面的介绍文章,然后做个实例,算是我通过MCDBA后,给大家的礼物吧。下面的介绍和例子,是针对SQL SERVER 2000和VFP7的。
一. 用SQL -DMO的必要性
大部分VFPER开发的程序,都是中小规模的系统,因为这是VFP最适用的范围。而这样的系统,很多情况下是,客户端没有专业IT人士维护,更不要说专门的DBA了。对于使用SQL SERVER的系统,就带来了一些问题。 SQL SERVER是一套比较大的数据库专业软件, 是经常需要维护和清理的,而我们这些系统开发者, 总不能老跑去用户那里做维护工作吧,尤其对商业软件来说,这是很大的成本了。如果可以把对SQL SERVER的维护工作放到自己的程序里,甚至把SQL SERVER的安装无缝并入到自己的程序的安装包里,相信大家都会很乐意的。 DMO的功能就能满足我们的这些需要。通过它,可以从程序里用命令方式来操作SQL SERVER:停止/启动服务,建立数据库和表,添加用户和权限,备份/恢复数据库,数据导入/导出/发布... DMO的作用就是把我们能在Enterprise Manager里完成的功能,完全用代码来做.
二. 微软的桌面数据引擎 (Desktop Database Engine)
我们都知道SQL SERVER 2000有四个版本: 个人版,开发者版,标准班和企业版. 其实,还有一个版本,就是桌面数据引擎(DDE)。 DDE几乎具有
SQL SERVER标准版和企业版的所有功能,不能支持的只是少数几个不常用的功能。而它和其它版本的区别是, DDE没有任何图形管理界面,没有ENTERPRISE MANAGER,没有查询分析器等等工具。 对它的管理,主要是通过DMO或者专门的API来进行,它的另一个优点是, 提供了安装程序,可以直接加到第3方软件里进行安装。每个版本的SQL SERVER CD里都带有DDE, 在MSDE目录下,运行SETUP程序就可以安装。至于怎么把它加到自己的程序里安装,大家查一下SQL SERVER的帮助文件就可以找到。
DDE的限制是: 只适宜中小型系统(比如没有5个以上的用户同时连接和运行大型SQL命令), 如果同时访问的用户很多, DDE就会比正常的SQL SERVER慢了。
这样, DDE+DMO就可以实现我们上面所要求的功能了。这种做法甚至可以不让用户知道你是在使用SQL SERVER做为数据库。当然, DMO不是只能操作DDE,它可以操作所有版本的SQL SERVER。
三. DMO的安装
其实DMO主要就是一个DLL文件而已: SQLDMO.DLL。具体位置在C:\Program Files\Microsoft SQL Server\80\Tools\Binn目录里, 在同一目录里还有个帮助文件Sqldmo80.hlp. 如果你在程序里不能使用DMO, 找到这个DLL文件,注册一下,就可以了。另外在C:\Program Files\Microsoft SQL Server\80\Tools\ Devtools\Samples\Sqldmo 目录下,有SQLDMO的例子,但都是VB和VC++的。VB的例子和VFP很接近的.
四. 初步接触DMO
在这里写几个简单的句子,来看看DMO的强大. 这些命令可以直接在命令窗口里一行一行测试, 只是用它们来显示数据库的信息。至于添加数据库,数据表,备份和恢复等比较复杂的功能,得在实例里做。
oServer=CreateObject("SQLDMO.SQLServer") 建立SERVER对象
oServer.Connect("Snoopy","sa","778899") 连接到你的服务器
? oServer.Databases.Count 显示服务器上的数据库总数
? oServer.Databases.Item(1).Name 显示第一个数据库的名字
oDB=oServer.Databases("PUBS") 建立数据库对象
? oDB.Tables.Count 显示库里表的数目
oTable=oDB.Tables("Titles") 建立表对象
? oTable.Rows 显示表里的记录数
? oTable.Columns.Count 显示表的列数
**显示列的属性
? oTable.Columns(1).Name
? oTable.Columns(1).type
? oTable.Columns(1).Datatype
? oTable.Columns(1).Identity
? oTable.Columns(1).IsPrimaryKey
备份和恢复数据库
oServer=CreateObject("SQLDMO.SQLServer") 建立SERVER对象
oServer.Connect("Snoopy","sa","778899") 连接到你的服务器
**备份
oBackup=CreateObject("SQLDMO.Backup") 建立备份对象
oBackup.Database="PUBS" 指定备份数据库
oBackup.Password="8899" 给备份文件加密码
oBackup.Files="D:\Temp\PUBBack.Dat" 指定目标文件
oBackup.SQLBackup(oServer) 运行备份命令,速度很快的
***注: 备份数据时默认为追加方式,可以加一句
oBackup.initialize=.T.
这样就会覆盖原来的文件。或者每次BACKUP时用不同的文件名,比如把日期作为文件名的一部分.
**备份恢复
oRestore=CreateObject("SQLDMO.Restore")
oRestore.Database="PUBS"
oRestore.Files="D:\Temp\PUBBack.Dat"
oRestore.SQLRestore(oServer) 先试不加密码,备份失败
oRestore.Password="8899"
oRestore.SQLRestore(oServer)
SQL SERVER提供几种数据库备份方式,
一种是完整备份 (Full Backup), 第二种是差异备份(Differential Backup), 第三种是日志备份, 第四种是文件备份
完整备份是把整个数据库做个备份,差异备份只是备份进行了完整备份后数据库里的新变化。当数据库很大时, 完整备份很费空间和时间,可以根据情况定期做,比如每周或者每月做一次完整备份。 其它时间可以进行差异备份,比如每天一次,或者半天一次, 也可以结合进行日志备份。文件备份是直接备份数据库的数据和日志文件。和在操作系统里做备份一样.
在恢复的时候,只要先恢复完整备份,然后恢复最后一个差异备份就可以。如果有日志备份,还需要恢复差异备份后所做的日志备份。
备份种类通过 备份对象的Action属性来决定.
oBackup.Action=0 参数: 0 - 完整备份,1- 差异备份, 2- 文件备份, 3 -日志备份
Q4: VFP可不可以访问SQL SERVER 数据库?
可以访问
1.
要求pc机上安装VFP6.0和sqlserver2000软件。
2.
配置windows的ODBC数据源:
开始菜单—》程式集—》系统管理工具—》资料数据源(ODBC)—》进入配置用户DSN或者系统DSN均可以:添加—》选择MICROSOFT
FOXPRO
VFP
DRIVER(*.DBF)—》在ODBC
VISUAL
FOXPRO
SETUP画面中,
自定义数据源名称(随意如:VFPTEST)—》DATABASE
TYPE可以选择VISUAL
FOXPRO
DATABSE(*.DBC)或者FREE
TABLE
DIRECTORY(*.DBF如选择这种可以自由的选择目录)—》OK完成。
配置和测试ODBC完成!
3.
配置sqlserver2000中的连接服务器:
企业管理器—》安全性—》连接服务器—》右键新建连接服务器—》定义连接名称;
选其他数据源;
指定程序名称为:MICROSOFT
OLE
DB
PROVIDER
FOR
ODBC
DRIVER;
产品名称可不填;
数据源指定刚才ODBC中定义好的数据源名称;
提供程序字符串按以下格式填写:User
ID=username;Password=userpasswd(或者按如下格式:UID=username;PWD=userpasswd),这里的用户名和密码对应所要连接的VFP数据库中的用户名和密码
—》
安全性标签页里:设置用此安全上下文进行,并录入VFP的数据库用户名和密码—》服务器选项标签页可默认—》确定。
4.准备工作全部完成!
在sqlserver企业管理器—》安全性—》连接服务器打开刚建好的连接服务器—》点击表,即可在右边窗口看到该VFP数据库用户拥有的的所有表名,但在这里还并不能查看表的记录,这个需要在sqserver的查询分析器中用具体sql实现!访问表时,使用格式为:
[连接服务器名]..[VFP用户].[表名]。更详细具体的使用这里不再赘述。
不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL
SERVER里面叫做LINKED
SERVER,通过ODBC实现与其它数据库的互联。
Q5: 数据库vfp的sql语句与sqlserver 的sql是一样的吗?
sql是一套独立的标准,SQL是Structured Query Language的缩写,是结构查询语言,它的功能包括查询(Query)、操纵(Manipulation)、定义(Definition)和控制(Control)四个方面,是一个综合的、通用的、功能极强的关系数据库语言。
vfp的sql语句与sql server 的sql不完全一样,虽然都源自标准的SQL,因为实现的环境和目标定位(一个是桌面数据库,一个是大型数据库)等因素的影响,两者是有差别的。各自的特点如下:
VFP中SQL的功能和特点:
支持数据定义和数据操作功能,但是不支持数据控制功能
2.只支持单层嵌套查询(不支持多层嵌套查询)
3.SQL命令既可以在命令窗口直接执行,也可以在程序中执行
4.支持SQL标准的一个子集。
SQL server中SQL的功能和特点:
1.基本支持SQL标准的所有功能
2.支持多层嵌套查询
3.SQL命令既可以在查询分析器中直接执行,也可以在程序中执行。
4.对SQL标准进行了扩展,称为T-SQL。
关于sqlserver与vfp和操作员SQLSERVER的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






