当前位置:首页 » 编程语言 » 如何连接vfp和sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何连接vfp和sql

发布时间: 2022-09-13 08:33:25

A. VF与sql连接详细步骤

请参考 ,个别词语可能与你的电脑不一样 (因为我使用繁体系统)

1. ODBC设置
“系统资料来源名称” --> “新增” --> 在列表中选择“SQL Server” --> 输入ODBC名称、描述、SQL服务器名 --> 选择连线
SQL方式(可包含输入数据库用户名、密码) --> 设置预设数据库等选项 --> “完成”

2. Foxpro 设置连接
在Foxpro建立一个数据库叫 your_dbc
然后打开它,使用如下的语句创建本地连接SQL的Connections
open database your_dbc share

CREAT CONNECTION CONN CONNSTRING "driver=sql
server;server=DBSQL;uid=your_name;pwd=your_password;database=your_db"
或者
CREAT CONNECTION CONN CONNSTRING "DSN=ODBC_DSN_NAME;Description=ODBC_Desc;UID=sa;PWD=;APP=MicrosoftR Visual FoxProR"
或者
CREAT CONNECTION CONN CONNSTRING "driver=sql server;server=192.168.1.99;uid=sa;pwd=;database=your_db"

不建议使用Foxpro 本身的远程视图,因为将来增加数据字段,或者服务器名改变时,需要 Foxpro 熟手修改远程视图,甚至重新
建立远程视图。

3. 在Foxpro程序中,可如下引用
open database your_dbc share
con_fox =SQLCONNECT('CONN')
kk = sqlexec(con_fox, "select * from tablename", "mytemp")
kk = sqlexec(con_fox, "update tablename set aa=9 where aa=-1 ")
当返回值 < 1,则表示执行不成功,否则为成功。

B. 求教VFP与 SQL连接问题,

1:采用存储过程
2:建好和使用好索引

关于“建立一个指向数据源的连接”的问题,在VFP中建立连接有好多种方法,但其结果都是一样的即“建立一个指向数据源的连接”,在有关资料中说每建立一个连接, 都会占用一定的系统资源,那么在您编制的软件中,究竟是使用同一个连接句柄好,还是每次读写数据都建立独立的连接好呢?究竟是一直保持连接状态好,还是每次使用完即终止连接好呢?
对这些问题,我是这样理解和处理的:
1、如果您的操作都是使用的'asynchronous'=.f.同步操作(用sqlsetprop()函数设置, 'asynchronous'=.f.是其默认值),由于VFP只能是单线程作业,则您大可不必建立多个连接,只要建立一个连接,各模块共享这个连接句柄就可以了。
那么如何才能共享这个连接句柄呢?在您创建远程视图时:
CREATE SQL VIEW [ViewName ] [REMOTE] [CONNECTION ConnectionName [SHARE] | CONNECTION DataSourceName] [AS SQLSELECTStatement]
里面有个“SHARE 子句”,告诉系统如果有已经建立的共享连接即使用之,没有再另建, 一旦建立了共享连接,除非您关闭了建立这个连接的视图或用SQLDISCONNECT()函数终止,则该连接一直有效。
问题来了,我用CREATE SQL VIEW建立的连接,在sqlexec()里是否也可以使用该连接呢? 当然可以,您只要:
pconn=CURSORGETPROP("ConnectHandle", "ctbmtem") && ctbmtem是您建立的视图名。 merr=sqlexec(pconn,'select * from jdb WHERE jsbj=0 ','jdbtem')
具体我是这样做的: 用视图设计器,建立一个远程视图(我整个程序只建这唯一的一个远程视图'ctbmtem',这是一个每个模块都必须使用的视图,至于为什么只建一个,后面我将说明),这样我只要在程序的开始部分执行:
PUBL pconn
OPEN DATABASE d:\jnccy\dbc\cyylk.dbc SHARED
USE ctbmtem in 0 &&打开远程视图同时建立连接句柄
pconn=CURSORGETPROP("ConnectHandle", "ctbmtem") && 取得连接句柄,并保存在全局变量pconn中
merr=sqlexec(pconn,'select * from jdb WHERE jsbj=0 ','jdbtem')
这样您就无须频繁地多次建立连接了。
2、对于第二个问题:究竟是一直保持连接状态好,还是每次使用完即终止连接好呢? 对这个问题,必须视具体情况看,如果您的程序必须经常取得服务器的最新数据,以供用户使用,而且您的系统不可能长时间地处于空闲状态,那我建议您还是一直保持连接的好,同时我还是要建议您,如果您的软件可能有几十个用户端,那最好您还是建一个计时器,检测系统空闲时间,如果长时间处于空闲状态,最好还是及时终止连接,用时再重新连接,毕竟对服务器来说,多一个连接,要多花费资源和时间来进行判断,影响效率。

C. vfp9.0连接sql数据库

VFP连接SQL数据库可以采用SPT和CA这两种方式.
下面是SPT的连接方式:
DECLARE INTEGER SQLConfigDataSource IN odbccp32 INTEGER,INTEGER,STRING,STRING
Public gnConnhandle &&将该SQL连接句柄设为全局变量,其他过程中仍可继续调用
lnWindowHandle=0
lcODBCDriver='SQL Server' &&Driver类型
lcODBCName=M_DataName &&数据源名
lcODBCDesc='广智80数据源' &&数据源描述
lcODBCServer=M_PcName &&SQL Server 服务器名
lcODBCDatabase=M_DataName &&要连接的数据库名称
gnConnhandle=SQLSTRINGCONNECT('driver='+lcODBCDriver+';Server='+lcODBCServer+';uid=&M_Uid;pwd=&M_Pwd;database='+lcODBCDatabase)
SQLSETPROP(0,'DispLogin',3)
SQLSETPROP(0,"IdleTimeout",0)
IF gnConnhandle<=0 &&判断SQL连接是否成功
=MESSAGEBOX("连接数据库失败,请与系统管理员联系!",0+48,"提示")
RETURN
ELSE
=MESSAGEBOX("连接数据库成功!",0+48,"提示")
ENDIF

连接成功后,gnConnhandle这个句柄就可以进行引用了。具体SPT的用法,请网络〈SPT起跳 〉这篇文章。

CA的用法也比较简单,我平时很少用,具体也网络VFP CA用法吧。

D. 请问高手门,怎么用VFP6.0连接SQL数据库,并访问数据

首先建立个数据库,
在数据库中建立远程视图,这个远程视图就是应用标准的ODBC,实现异种数据库连接,可以访问并更新数据.
数据库中还有个连接,
这个也是ODBC连接,
如果先建立ODBC连接,
就可以重复引用这个连接,
方便的建立多个远程视图时.
1.首先需要在[控制面板]-[管理工具]中,进入[数据源ODBC]-[用户DNS]中,检查是否存在SQLServer数据源.
2.如果没有SQL的选项.
在这里需要添加SQLServer驱动程序
3.在添加驱动时需要对数据源命名(如SQLServer),并且将你所要连接的数据库名,登陆数据库的用户名密码等设置好.
然后在VFP中
1.新建远程视图
2.选择数据源(或选择已建立好的连接)SQLServer.
3.在列表中选取要连接的表
这样就可以了.按照提示操作,不复杂.

E. 怎样vfp连接sql数据库

可以通过CA或SPT技术对SQL数据库进行访问,一般用SPT的多些。具体这两种技术的使用方法在BAIDU上搜索就可以。
推荐“SPT起跳”这篇文章,里面有VFP通过SPT访问SQL的详细讲解。

F. 怎么把VF的数据库和sql的数据库联系到一起,就是就是VF做前台,sql数据库做后台~

通常是:
1. 架构SQL数据库原型,通过新建或导入等方式在SQL创建一个和你现用VF的DBC结构相同的库,即包含相同表名,表结构的表。
2. 创建本地 ODBC 配置。
3. VFP 前台 通过 远程视图【VFP3~VFP9】 或 CursorAdapter【VFP9】 读取和更新数据。

个人觉得 VF的DBC数据库同步SQL或Oracle数据库是没必要的,这会增加代码的复杂程度,另一方面会增大数据出错几率,索性将你现有的数据转移到SQL,后台就用SQL,SQL具有良好的权限控制和管理功能,前台参照原有的VF源程序适当修改。

G. 怎样实现VFP和SQL这两个数据库的连接

应该是sqlserver吧?没有做过,不过要sqlserver支持导入vfp才行啊,从vfp导出,再从sqlserver导入,试试看。

H. 请问高手门,怎么用VFP6.0连接SQL数据库,并访问数据

首先建立个数据库,
在数据库中建立远程视图,这个远程视图就是应用标准的ODBC,实现异种数据库连接,可以访问并更新数据.
数据库中还有个连接,
这个也是ODBC连接,
如果先建立ODBC连接,
就可以重复引用这个连接,
方便的建立多个远程视图时.
1.首先需要在[控制面板]-[管理工具]中,进入[数据源ODBC]-[用户DNS]中,检查是否存在SQLServer数据源.
2.如果没有SQL的选项.
在这里需要添加SQLServer驱动程序
3.在添加驱动时需要对数据源命名(如SQLServer),并且将你所要连接的数据库名,登陆数据库的用户名密码等设置好.
然后在VFP中
1.新建远程视图
2.选择数据源(或选择已建立好的连接)SQLServer.
3.在列表中选取要连接的表
这样就可以了.
按照提示操作,不复杂.