VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

請教如果結合名稱相同的DBC資料
前往頁面 1, 2  下一頁
 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
Peggie



註冊時間: 2014-10-28
文章: 13


第 1 樓

發表發表於: 星期一 十一月 10, 2014 5:23 pm    文章主題: 請教如果結合名稱相同的DBC資料 引言回覆

請教各位高手
如果有兩個一模一樣的vfp系統,一個建立在A一個建立在B,其資料庫.dbc與.dbf是各自獨立且名稱相同

若現在要在A系統在產生報表時,增加一控制項可產生A與B資料結合的Excel檔,請問我該如何處理?有辦法在A取入B的相同名稱.dbc或.dbf資料嗎?
回頂端
檢視會員個人資料 發送私人訊息
asd89839032



註冊時間: 2012-10-15
文章: 49


第 2 樓

發表發表於: 星期一 十一月 10, 2014 5:49 pm    文章主題: 引言回覆

use C:\A.dbf in 0 alias a1
use D:\A.dbf in 0 alias a2

dbf可以這樣用,dbc我不熟,不過應該是可以用類似方法才是

_________________
菜鳥路過...
回頂端
檢視會員個人資料 發送私人訊息
bx1166



註冊時間: 2011-12-06
文章: 273


第 3 樓

發表發表於: 星期二 十一月 11, 2014 7:41 am    文章主題: 引言回覆

試著加入全路徑 或者副檔名看看

use \path1\filea.dbc
use \path2\filea.dbf

讓我想起周潤發的電影

你確定你名字叫 Jon Lee 中國有四億人叫 John Lee

文字那麼多 何苦取同名?
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期二 十一月 11, 2014 1:46 pm    文章主題: 引言回覆

asd89839032 寫到:
use C:\A.dbf in 0 alias a1
use D:\A.dbf in 0 alias a2

dbf可以這樣用,dbc我不熟,不過應該是可以用類似方法才是



這樣是可以.

可以直接開啟DBC中的某個DBF,

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 5 樓

發表發表於: 星期二 十一月 11, 2014 2:18 pm    文章主題: 引言回覆

bx1166 寫到:
試著加入全路徑 或者副檔名看看

use \path1\filea.dbc
use \path2\filea.dbf

讓我想起周潤發的電影

你確定你名字叫 Jon Lee 中國有四億人叫 John Lee

文字那麼多 何苦取同名?




VFP 的 OPEN DATABASE 沒有 ALIAS 功能,
所以開啟兩個同名 DBC 問題很大.

以以下示例說明:
代碼:

OPEN DATABASE c:\syntek6\bms\da\bms.dbc SHARED
OPEN DATABASE c:\syntek1203\bms\da\bms.dbc SHARED
? adatabase(gadatabase)
display memory like gadatabase


會得到:

GADATABASE Pub A
( 1, 1) C "BMS"
( 1, 2) C "C:\SYNTEK1203\BMS\DA\BMS.DBC"
( 2, 1) C "BMS"
( 2, 2) C "C:\SYNTEK6\BMS\DA\BMS.DBC"


很難用 SET DATABASE 切換


VFP 6 ~ VFP 9 應該都一樣

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
perry



註冊時間: 2014-07-20
文章: 203


第 6 樓

發表發表於: 星期二 十一月 11, 2014 3:49 pm    文章主題: 引言回覆

可使用笨方法...
先 use 獨立資料庫.dbf SELECT 出要的資料
再 Open .dbc 應可解決!!
回頂端
檢視會員個人資料 發送私人訊息
小賴



註冊時間: 2004-12-27
文章: 470


第 7 樓

發表發表於: 星期三 十一月 12, 2014 11:44 am    文章主題: 引言回覆

不要開 DBC 檔 (Open DataBases) 不行嗎 ?

直接開 DBF 檔 再使用別名 USE A.DBF ALIAS ...
不下 Open DataBases 指令 OK 呀
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 8 樓

發表發表於: 星期三 十一月 12, 2014 11:51 am    文章主題: 引言回覆

小賴 寫到:
不要開 DBC 檔 (Open DataBases) 不行嗎 ?

直接開 DBF 檔 再使用別名 USE A.DBF ALIAS ...
不下 Open DataBases 指令 OK 呀



1. 4樓有說明.
可以直接開dbf
直接開dbc裡的dbf,dbc也會自動啟用.



2. 5樓實驗3樓說的開兩個同名 dbc 的情況.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
Peggie



註冊時間: 2014-10-28
文章: 13


第 9 樓

發表發表於: 星期二 十一月 18, 2014 4:05 pm    文章主題: 引言回覆

終於發現可使用詳細路徑區分資料庫
例:有二個相同名稱的資料庫"database",各自路徑是c:\data1\database.dbc、c:\data2\database.dbc。資料庫有相同的資料表(dbf)"table"

open base c:\data1\database
open base c:\data2\database
use c:\data1\database!table alias a
use c:\data2\database!table alias b

資料庫名稱重複真的很麻煩
要是開發新系統時,一定要求資料庫名稱不能重覆

另外說明:因為資料庫是多人同時使用,若資料庫已被開啟,無法直接用USE指令開啟該資料庫裡的DBF!需開啟該資料庫後才可使用USE開啟DBF
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4212
來自: Taipei,Taiwan

第 10 樓

發表發表於: 星期二 十一月 18, 2014 4:51 pm    文章主題: 引言回覆

你用5樓的方法試看看. 應該會失望.

你的作法跟4,5樓都一樣



use c:\data1\database!table alias a

use c:\data1\table alias a
效果完全一樣.

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
Peggie



註冊時間: 2014-10-28
文章: 13


第 11 樓

發表發表於: 星期三 十一月 19, 2014 8:55 am    文章主題: 引言回覆

我解說詳細一點好了:
如果兩個資料庫只有一個人在使用,使用4樓大大的用法是行得通的
use c:\data1\table share
但若是c:\data1\database 已被其它人開啟,下了use c:\data1\table share會出現"c:\data1\database.dbc資料庫:檔案存取失敗"
所以要開啟多人存取系統中資料庫下的table,就必須先開啟該資料庫才能開啟其下的table

另外5樓大大的說法是說用set database to ,
若使用use c:\data1\database!table alias a 是不需要切換資料庫就可直接開啟!

貼上我寫的程式碼:
db1 = w:\data1\database
db2 = w:\data2\database
tb1 = db1 + "!table"
tb2 = db2 + "!table"
open database &db1 share
open database &db2 share
close all (註)
use &tb1 share alias tb1
use &tb2 share alias tb2
sele (tb1)
.
sele (tb2)
.
註:因為發現當我使用
open database &db1 share
open database &db2 share
use &tb1 share alias a
use &tb2 share alias b --->這時會出現"別名已被使用"
在檢查sele a ~ sele j發現都已被使用,sele a再輸入browse會出現目前資料庫的table清單供人選擇
為避免這種情況,所以工作區代號不使用a~z

這些只是我好奇有沒有辦法在一支程式中同時開啟同名資料庫下同名資料表做處理所搞出來旳方法。在一邊修改程式時也為前人撰寫此程式沒有考慮到資料互串的問題在抱怨!
其實有更簡單的方式,就是開啟第一個資料庫把要的資料丟到暫存表,關閉後再開啟第二個資料庫把要的資料與暫存表的資料做結合後再產生報表!但若是此系統功能還要繼續使用,就必須開啟原本使用的資料庫。
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 12 樓

發表發表於: 星期三 十一月 19, 2014 10:55 am    文章主題: 引言回覆

Peggie 寫到:

所以要開啟多人存取系統中資料庫下的table,就必須先開啟該資料庫才能開啟其下的table


實在看不懂樓主在講什麼?
開啟同名dbc的同名dbf很平常呀,天天都在做~
不然,多年度比較報表要怎麼玩?

代碼:

CLOSE DATABASES ALL
USE 0102acc\022acc\Acc!acc6 AGAIN ALIAS aaa IN 0 &&�}102年度的傳票
USE 0103acc\022acc\Acc!acc6 AGAIN ALIAS bbb IN 0 &&�}103年度的傳票
SELECT aaa
BROWSE
SELECT bbb
BROWSE


上例是開二個年度的傳票檔, dbc 同名 , dbf 也同名
都ok呀

如果懶得加 dbc , 也行
代碼:

CLOSE DATABASES ALL
USE 0102acc\022acc\acc6 AGAIN ALIAS aaa IN 0 &&�}102年度的傳票
USE 0103acc\022acc\acc6 AGAIN ALIAS bbb IN 0 &&�}103年度的傳票
SELECT aaa
BROWSE
SELECT bbb
BROWSE
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
Peggie



註冊時間: 2014-10-28
文章: 13


第 13 樓

發表發表於: 星期三 十一月 19, 2014 1:25 pm    文章主題: 引言回覆

To ckp6250:
請你請另外個使用者開啟0102acc\022acc\Acc.dbc後,在你自己電腦下USE 0102acc\022acc\Acc!acc6 AGAIN ALIAS aaa IN 0 指令
若無出現異常,我再向你請教你的Acc.dbc及vfp環境參數設定
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1644


第 14 樓

發表發表於: 星期三 十一月 19, 2014 5:35 pm    文章主題: 引言回覆

沒事去開 Acc.dbc 做啥呀?
我們的目的在開 dbf
我舉的 code , 再多人同時執行都沒問題

此外 , 您在一樓提到【可產生A與B資料結合的Excel檔】
若是這個目的,那就更簡單了
代碼:

SELECT * FROM 0102acc\022acc\Acc!Acc6 ;
UNION ALL ;
SELECT * FROM 0103acc\022acc\Acc!Acc6 ;
into cursor Temp
copy to Temp type xls


簡單事情簡單做!
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
Peggie



註冊時間: 2014-10-28
文章: 13


第 15 樓

發表發表於: 星期四 十一月 20, 2014 8:12 am    文章主題: 引言回覆

To ckp6250
我也不想要用.dbc啊!但是建置N年的系統沒人想去大改。
如果很單純的可以單獨使用dbf檔,我想我不會再這裡發問
所以請你先搞清楚我的原本問題再做回答!
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
前往頁面 1, 2  下一頁
1頁(共2頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作