2011-02-23 90 views
0

有人知道任何方式將數據從訪問數據庫導出到cobol代碼嗎?從訪問+ VB 6到COBOL

謝謝

+0

你需要說哪種COBOL。 – 2011-02-23 15:55:31

+3

不知道我明白這一點 - 訪問數據是數據,而COBOL代碼是代碼。 如果您嘗試將VB6代碼轉換爲COBOL,那是一個編程挑戰。我不確定是否存在自動轉換器,但實際上重寫代碼可能並不那麼困難。代碼運行的數據將是另一回事。 請你給我們更多的細節嗎? – TrueDub 2011-02-23 15:57:52

+0

我試圖導出一些訪問數據到一個複製Cobol格式文件。這個將由第三部分軟件解析(我不知道這個SW會做什麼)。如果有一些「自動導出軟件」存在,我正在遊蕩;現在我試圖用VB腳本來做到這一點,但.. **是一種程序語言:-) ** – alesdario 2011-03-06 17:16:09

回答

0

最簡單的方法是導出到固定格式的訪問。這是Cobol文件數據描述的原生格式。

但是,如果訪問不支持此操作,則可以導出爲CSV(逗號分隔值)文件或TSV(選項卡分隔值)。 Cobol以其ANSI形式不支持這一點,但使用簡單的Unstring進行解析非常容易。例如:

Perform Read-A-Record 
Perform until End-Of-File 

    Unstring Input-Record 
    delimited by "," 
    into Column-1-Field 
      Column-2-Field 
      ... 
      Column-n-Field 

    Perform Read-A-Record 
End-Perform 
+0

請小心......當導出數據值時,使用UNSTRING解析CSV文件有點困難可能包含逗號和/或引號。例如:**「1,200」**是一個包含逗號的數字。並且:**「我的」「名字」「,在這裏」**是包含引號和逗號的文本字符串。解析這些與UNSTRING是好多很多「有趣」 – NealB 2011-02-23 17:47:45

1

固定格式肯定是要走的路,任何Cobol都可以讀取固定格式文件。

一個簡單的方法來創建任何SQL方言固定格式文件(甲骨文,DB2,H2等)是使用SQL字符串函數創建一個單一的領域和出口/這個查詢寫入文件

MS訪問示例查詢:

SELECT Left(Str([TblId])+Space(8),8) 
     + Left(Str([tblkey])+Space(20),20) 
     + Left([Details]+Space(30),30) 
     + "<" AS ExportString 
FROM Tbl_TI_IntTbls; 

COBOL的這將是最好右對齊填零對齊小數點數字領域。

此外,如果這一關你 可以在訪問中運行查詢複製/粘貼輸出到文本編輯器。

Ms Access還允許您定義固定格式並使用它們來輸入(導出?),但是從我使用它們開始(我正在使用它們導入固定寬度數據)已經很長時間了。我將把這個討論留給訪問專家。

你也可以看看RecordEditor(http://record-editor.sourceforge.net/Record11.htm)/ JRecord(http://jrecord.sourceforge.net/),因爲

  1. 兩個讓你查看/編輯使用一個COBOL習字文件 - 有用 檢查出口比賽的的Cobol的定義
  2. 兩者有字帖分析選項 (文件菜單),將計算在一個COBOL 領域的 啓動/長度Copybook
  3. 兩者都有副本 功能,將到/從一個COBOL文件使用一個COBOL 字帖複製一個CSV文件

注:這是我的軟件無恥插頭

我會避免界定文件(如果分隔符出現在一個字段中),但是如果你必須使用一個obskure字符,例如'or〜or^

0

訪問可以通過導出嚮導或簡單的VB6程序或腳本導出爲固定字段格式可以使用Jet OLEDB Pro做同樣的事情vider和Jet的文本IISAM,以及定義輸出格式的Schema.ini文件。

有格式限制(沒有簽名包裝的十進制格式或其他Cobol exotica),但通常這應該足以創建大多數Cobol變體支持的文件。如果您確實必須將數字字段填充爲零,則可以使用Jet SQL表達式服務執行此操作,該服務允許內聯使用VBA函數的子集,並在Schema.ini文件中將結果字段定義爲文本。

如果您確實需要導出到某種ISAM文件,最好的辦法是編寫一箇中間Cobol程序來導入保存的字段字段文本數據。一些Cobol產品甚至可能包括公用事業公司進行這種進口。

+0

嗨,我可以找到一些有關Jet OLEDB提供商和Jet的文本IISAM的文檔?謝謝 – alesdario 2011-03-06 17:20:44

+0

* ...我在哪裏可以找到... – alesdario 2011-03-07 14:57:49