當前位置:首頁 » 編程語言 » 如何連接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.在列表中選取要連接的表
這樣就可以了.
按照提示操作,不復雜.