2010-04-12 89 views
3

我在其中仍使用COBOL的所有組織工作的一家醫院接收了一個作業,整個(現在的20太字節)數據庫(這是一個自制,你猜怎麼着,COBOL)充滿了每一個數據自過去45年(或多年)以來的患者。插座和COBOL

這就是我的故事。現在我的問題:

目前,所有套接字(從我所見過的)實現的COBOL程序將他們的數據寫入文件。然後這些文件被C++程序讀出(這是20世紀80年代後期增加的一個模塊),並使用發送到數據庫的C++套接字。

現在該解決方案已停止工作,因爲他們是從COBOL數據庫移動到COBOL,是的 - 他們沒有使用MySQL或這樣 - 他們實現了一個新的數據庫 - 再次COBOL。我問過在我之前在那裏工作過的那個人(他現在70歲左右)爲什麼會有人這麼做,他告訴我他非常擅長COBOL,所以他不想用其他語言編寫它。

到目前爲止好,現在我的問題:

  • 我如何能實現在COBOL套接字連接?我需要創建一個到位於例如192.168.1.23:283的外部COBOL數據庫的接口。
+1

你真的有我的同情心。有人在這裏犯了一個很大的錯誤,他們需要將這些數據從那裏轉移出去,讓這位70歲的老人優雅地退休。它會花費他們的財富,讓他們離開它的時間更長。 – 2010-04-12 21:06:09

+0

問題就像...... COBOL從存在中消失......就像每個人都想把它從眼中剔除一樣。我甚至找不到官方文檔。我很無奈,不知道如何實現套接字.. – kati 2010-04-12 21:14:39

+1

我想我可以幫助...但我需要更多的信息。 COBOL計劃在哪裏託管?什麼是執行環境(Micro Focus,通過IBM OS/2的IMS,通過zOS的CICS),編譯器等等。但是這裏的主要信息是這樣的:你*不能*在cobol中實現套接字,儘可能多沒有在C/C++中實現它。你必須依靠你的環境來做到這一點。 – 2010-04-12 21:30:23

回答

0

大多數COBOL編譯器將允許您鏈接並調用對象模塊或DLL。正如Kati所說,我知道我可以幫忙,但需要額外的信息。我以前從Windows到DEC做過這件事,所以我知道它可以做到。

0

回想一下Google是你的朋友。

答案在很大程度上取決於您的執行環境。

IBM確實要求有從COBOL一個Sockets API可調用,作爲z/OS的CICS的一部分。

微焦點似乎有東西。

+0

您可以(幾乎)始終從COBOL調用外部子例程。如果OP可以提到環境,我相信這裏有人可能會提供幫助 – 2010-06-05 07:01:25

1

IBM大型機有兩個可用於COBOL的套接字API。 一個用於CICS程序(其中有特殊的線程安全和envrinment注意事項)和一個用於普通的批處理或IMS程序。

完整的TCP/IP的功能實現和可靠,足以應付信用卡協議MVA標準(我知道「因爲香港專業教育學院做到了)。

4

您需要提供有關您的操作系統和編譯器的更多信息。

如果你是在IBM z/OS上使用語言環境支持的編譯器,你可以從z/OS通信服務調用EZASOCK功能。這些調用在他們的參考文獻中有很好的記錄,並且有良好的Cobol示例

其他平臺將有其他選項。

在大多數情況下,你可以「CALL」寫在你需要的任何一種語言的外部模塊,而是一個DLL或sharedLib或什麼的。

你能提供一些關於你的環境的更多細節嗎?

爲什麼不直接從Cobol程序直接寫入數據庫?