トップページ⇒tech
1001コメント319KB

COBOLなら、オレに聞け!<2>

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
おちこぼらーさんには申し訳ないが勝手に1000まで使わせてもらっちゃいましたので
PART2をたてときます

仕事だから仕方なくCOBOLをやってる人
本気でやってる人
いろいろいるとおもいますがオッサンたちで役に立つならお手伝いしますということで・・・
0951デフォルトの名無しさんNGNG
>>949
普通のプログラマなら3日でマスターできること
流動性の高い大規模プロジェクトならそれなりに利点
0952デフォルトの名無しさんNGNG
>>949
経験者の絶対数がJava/C++に比べて遥かに多い。
それゆえ人月・工数が膨大なPrj(例えば金融基幹業務など)は
人が集め易いCOBOLが今だに採用されやすい。
0953デフォルトの名無しさんNGNG
F-COBOL
0954 NGNG
>>949
簡単に言っちゃうと、メインフレームはほとんどCOBOLでしょう。(長きに渡って実証されている高速安定信頼性)。
細かく言うと、メインフレーム内部のマルチタスク・REALTIME処理のOS的部分は分からないけど、
メインフレームDB自体(もしかしてこれも高級言語ではないかも?)や、デフォルトの端末はCOBOLでしょう、SQLアクセスやスクリプトでやるより処理が高速・安定。
ただ、システム自体にタッチするのでなければ、データ受け取って2次側での加工になるから、SQLとかスクリプト(C+、C++、VBスクリプトなんかだとMSSQL鯖が要るんじゃないかな)使って加工した方が便利でしょう。
けど、COBOLでやるにしろ、SQL・スクリプトでやるにしろ、データベースへのタッチ(専用端末からダウンロードは別)はデータベースの規模が大きくなると禁止されるのでは?特に基幹データベース。
実際、基幹や大きなデータベースでは新たにデータベースアクセスのプログラムを実業務に移す前に、充分な設計・テストを踏んだ後、移行されるわけだし。
0955デフォルトの名無しさんNGNG
>>949
寝ぼけたやつが書いたコードでもそこそこ動く。
チョット前まで素人だったやつでも2週間もあればコーディング可能。
パッと見が中学校1年生程度の英語なのでとっつきやすい。
事務系の世界では10進数の取り扱いがとても楽。
(PL/Iでも楽チンだが見た目が暗号とCOBOL使いによく言われる)
偉い人がCOBOLしかわからない。
既存のシステムがCOBOLなので移植するのが大変。
などなど

COBOL→VBはあんまり意味がなさそう。
COBOLのほうが素人にとっつきやすいでしょう。
PC用COBOLをみるとVBの必要性を感じない。
VBAは便利だとおもうけど。

c++はオブジェクト指向を理解できないと意味無い。
理解して使ってる人間なんてホンの一握り。
COBOLからリプレースするのは難しい。

結局COBOLから他の言語に移行するには金や労力がかかりすぎる
という予想が成り立つのでいつまでもCOBOLってことなんじゃないのかしら?

「COBOLはわけわからん」という人たちが大勢を占める時代が訪れない限りね!
そんな時代は訪れないような気がしてます。
以上酔っ払いのたわごとでした。
0956デフォルトの名無しさんNGNG
>>955
「COBOL以外はわけわからん」という連中が多数いるのも事実。
0957デフォルトの名無しさんNGNG
>>956
だからなんだ?

それ言いたいだけじゃないのか?流れと関係ないのに。
0958デフォルトの名無しさんNGNG
EXEC SQLとか一度も使った事がありません。
うちでは性能を重視してミドルプログラムを介してしか
DBにアクセスできないようになっています。
こういうのって少数派?
0959デフォルトの名無しさんNGNG
既出かもしれないけど
PRO*COBOLコンパイラってあるの?
0960デフォルトの名無しさんNGNG
>>959
訊く前にさらっとぐぐれ
0961デフォルトの名無しさんNGNG
>>958
性能を重視してじゃないだろ?
アフォでもつかえるようにだろ?
そういうところはいっぱいあるよ
0962まさNGNG
日立ホストのifitでexeclのデータをtxtにして
ホスト側に転送したのですが空白が詰まってしまいます。
うまくいく方法を知っておわれる方いませんか?
だめなら文字をいれてホスト側でスペースにchangeと考えてますが手間です。
0963デフォルトの名無しさんNGNG
>>962
COBOLとは関係ないですね。
↓こっちのほうが有効な回答が得られると思いますよ。
http://pc5.2ch.net/test/read.cgi/prog/1081683407/
0964デフォルトの名無しさんNGNG
誰か教えてください

プリコンパイルを行ったら下記エラーが出て困ってます

PCB-F-NOERRFILE, unable to open message file, facility PCB

環境はNET*COBOLとOracle9iです・・・。
0965デフォルトの名無しさんNGNG
cgi系のゲームのマクロってつくれますか?
0966デフォルトの名無しさんNGNG
どんなゲーム?ものによるね。
0967年寄NGNG
>962
わしがやってる方法
Excelのデータを一旦Accessに取り込んでから
出力データの項目長を指定した定義でtxtに吐き出す。
それからホストへ転送。
Excelから直の場合はわかりませーん

日本語が入ってる場合、シフトコード位置が決まらないから
データはプログラムでシフトコード外さないと文字が化ける…
そのプログラムはCOBOLだw


0968デフォルトの名無しさんNGNG
どんな環境だろうと言語だろうとメリットデメリットあるのだから
使い分ければいいんだよね。

しかし、実際にシステムを使わない、仕様や要件を知らない馬鹿ほど
「一新」「完全移行」を言いたがる…

「一新厨」が多すぎる。というのが個人的な見解。

ただし、「使い分け」には新旧技術の理解が必須だけど
年寄は旧技術しか知らないし、若造は新技術しか知らないで
枯れた環境を馬鹿にする。結果として「動かない」や「不条理」が
どんどん増える。
SE会社の偉い人でも若いころ技術厨だった人ほど変なことを平気で
やる…そういう奴の取り巻きには詐欺師(今猿みたいなの)も多いしなー

技術は目的達成のためにあるんだよなあ(嘆

たまに新旧をうまく使い分けているユーザの記事とか読むと羨ましいと思うね。
0969 NGNG
>>964
>unable to open message file, facility PCB
メインフレーム側で、その端末からのOPEN許可になって無いんじゃないの。
message file(ヘッダー?もしくはトランザクションコード?)とのPCBマスクのどれかが。
0970 NGNG
>>961
それを言うなら、危ういSQLや捨てアドプロシージャを基幹にばら撒くのを防ぐ為というのが正解なんじゃないか?
0971デフォルトの名無しさんNGNG
>>970
普通はセキュリティ対策だろうね。

よっぽどでかいプロジェクトなんだろうな。
それか技術者がよっぽど信用されてないかのどっちかだ。
0972デフォルトの名無しさんNGNG
>>971
厚生年金とか、銀行のシステムは
COBOLプログラムの中で直接SQLを発行してるの?
0973 NGNG
>>972
は?COBOLの中に埋め込みSQL?
最近のCOBOLはそんなことできるんだぁ。
VBやCのスクリプトやスカールの中に埋め込みコボルならわかるけど・・・。
COBOLのDBDならフツーにいってCALL命令でしょ。
0974デフォルトの名無しさんNGNG
>>973
かなーり昔から埋め込みSQLは可能でしたが。
0975デフォルトの名無しさんNGNG
>>973
うわ、真性コボラーだ。
職場のお荷物なんだろうな。
0976デフォルトの名無しさんNGNG
2004/06/09 Misson2-cnt004の解説更新

http://mypage.naver.co.jp/rodman/cobol/3/cnt004.html
0977デフォルトの名無しさんNGNG
COBOLってなんで全部大文字で書くの?
すいません馬鹿っぽいんですけど
0978デフォルトの名無しさんNGNG
>>977
文字コードの変遷を見てください。
昔は大文字ばっかりでした。
昔のBASICも大文字。
0979デフォルトの名無しさんNGNG
>>973
COBOLというより、DBMS側の問題だよ。
15年以上前から埋め込みSQLは普通に存在してます。
0980 NGNG
>>976
それは、リレーショナルじゃなくて、端末自体にデータベースを持っている時のアクセスの仕方でしょ?
>>975
まぁでも、COBOLにSQL埋め込むとして、PCBマスクの考え方とか分かってるのかな。
バイト数の設定間違えるとDBの書き込みはもちろん、トランザクションの送信など、コードがずれ込んでそれ以降、DB文字化け、トランザクションなら例外で済めばいいけど違うコードで受け取られてしまいバグになる、なんてこともないのかな。
RDBだと大規模だろうから、悲劇だよ。基幹はアクセス制限を設けられてるだろうし、やるときは、充分検討・テストを積まれたプログラムで実運用に入ると思うけど。
0981デフォルトの名無しさんNGNG
>PCBマスクの考え方とか分かってるのかな。
何ですかそれは?初めて聞きました
0982デフォルトの名無しさんNGNG
アプリケーションがそんな低レベル処理を気にする必要はない
その辺までプログラマに要求するようなSQLプリコンパイラがあってたまるか
0983デフォルトの名無しさんNGNG
>>980はアセンブラ時代しか知らない化石なので気にしないように。
たぶんOSとかミドルウェアとかレイヤーとかそういう単語も知らないだろう。
0984デフォルトの名無しさんNGNG
コボラーって>>980みたいなのばっかりじゃないんだよ。
本当だよ。
いっしょにしないでよ。
頼むから。
0985デフォルトの名無しさんNGNG
>>980
PCBマスクってなんですか?
0986デフォルトの名無しさんNGNG
IMSのDBにアクセスする場合にはPCBって必要だが
DB2にそんなもの必要なかったと記憶している
DB2ではPLAN

ここで度々登場するPCBってなんなの?
0987デフォルトの名無しさんNGNG
>>986
そのPCBってなによ。しかもPCBマスクって何よ。

IMSっなんなんだろう。今役に立ちそうもないので
ぐぐるのもまんどくさい。
0988986NGNG
>>987
PCB→Program Communication Bloc
IMS→Information Management System

IMSはIBMのメインフレーム用の階層型DBのDBMS
(トランザクション処理もやります)

その製品を使ってその製品のDBにアクセスする場合の
アクセス権限を決めるのに使うのがPCB

で、プログラム側ではIMSからPCBの情報をアドレスで受け取り
それをプログラム内で処理するための用意しておく情報エリア
(アクセス状況等)がPCBマスク

っていうのが俺が知ってるPCB
0989 NGNG
>>988
それは、すなはち権限登録は端末PCBじゃない?その端末状況コードを端末側で受け取るミラーが端末PCBマスク。
他にも、端末からのデータのエリアであるDBPCBと、
各種処理コード(トランザクション)のエリアであるIOPCBがあった、確か・・・。
PCBはLINKAGE SECTIONに指定する。
PCB以外にも、ヘッダーとして伝送用バッファ(2BITE?)と続いてシステム用バッファ(読み書きコード等の機能変数用の2BITE?)や送受信バッファをWORKING STORAGE SECTIONに確保する必要がある。
RDBすなはちDB通信では、ポインタ変数を指定するごとく、各種エリアを確保してやらないといけない。
PCBマスクってのはPCBのミラーであり、PCBってのはDB自体にある、そのアクセス権限や、機能変数値や、DBの送受信エリアで、その情報を端末側で受け取るのがマスク。
要は、銀行ATMの預金通帳のようなもん。DBが口座で、PCBがオンラインサーバ、端末がATM。
結果がどうなったかを端末側は、もし預金通帳が無いと分からない。オンラインサーバの結果のミラーを預金通帳に示す、その役目がマスク、と理解している。
今は、まるでパッチを当てるかのように、できあがりファイルを使用するファイルとして、IOSECTIONのFILE CONTROLLにファイル名をSELECTしてやると、そのファイルの中で内部変数が上記のプログラミングされているらしく、あとは使うだけ〜の様になっているようだ。
0990 NGNG
↑訂正
PCBマスクはLINKAGE SECTIONに指定する。
PCBマスク以外にも、・・・
0991 NGNG
ついでに、>>989でエリア指定した変数のどれもコレも、リモートのDBにアクセスするCALL命令で使う。
埋め込みSQLでは、内部でどうやってるのかは知らない。
0992デフォルトの名無しさんNGNG
>>989
あんたが何言ってるのかよくわからん
BITE→BYTEだろ
DB自体にあるPCBってなんじゃ?
ファイルの各レコードに割り振られたアドレスを示すポインターのことか?
それからIMSのPCBはDBアクセス用のDB PCBともう1種類はトランザクション処理用の
TP PCB(IO PCBとALT PCB)
PCBマスクにはアクセスの結果の状況コードやアクセスに使用したキー情報の
キーフィードバックエリアがある。
マスクはPCBを経由して渡されたポインタを先頭アドレスにもつ情報エリアを
使用するために定義するもの。いわゆる基底付変数。

IMS以外ではどうなのかは知らんが・・・
0993964NGNG
message fileをoracleのCDから追加したらなんとかなったようです。

ありがとうございます。お騒がせしました・・・。
0994デフォルトの名無しさんNGNG
次スレ

COBOLなら、オレに聞け!<3>
http://pc5.2ch.net/test/read.cgi/tech/1087178214/
0995晒しあげ。NGNG
>>973 >>973 >>973 >>973 >>973
>は?COBOLの中に埋め込みSQL?
>最近のCOBOLはそんなことできるんだぁ。
>VBやCのスクリプトやスカールの中に埋め込みコボルならわかるけど・・・。
>COBOLのDBDならフツーにいってCALL命令でしょ。
>>973 >>973 >>973 >>973 >>973
0996デフォルトの名無しさんNGNG
なんか変な奴が沸いてきたな。
0997ビル・ジョブスNGNG
1000!
0998デフォルトの名無しさんNGNG
おい!1000!
0999デフォルトの名無しさんNGNG
とう!10000!
1000デフォルトの名無しさんNGNG
はいどうも1000!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。