プロが教えるわが家の防犯対策術!

プログラムに無知の者で言っている事が通じてなかったらすみません。dBXL dBASEIII?のプログラムを使用しているのですが、お詳しい方を探しています。今迄使用していたプログラムがエラーで動かなくなってしまいました。おそらくdbfファイルの読み込みで引っかかっている様ですが、是非とも相談に乗っていただきたいのです。ネットで調べてみたのですが古いプログラムのせいなのか、どちらのサイトも古く、連絡が取れそうな人が見つかりません。身近にいたプログラムを組んだ人間が亡くなってしまいお手上げです。マニュアルも見つかりません。お詳しい方を探すアイディアがあればご教授願います。

質問者からの補足コメント

  • mapascal様
    ご回答ありがとうございます。dBXL徹底入門という本は買ってみたのですが最初の方で挫折しました……。あまりにも古いパソコンでの操作の本なのでよく理解できませんでした。いずれは1から覚えたいという気もあるのですが、人に聞きながらの方が早く直せそうな気がします。dbfファイルとExcelとの互換性の事とかも対応してない位古い本なので、知識のある方にお伺いしたいと思いました。

      補足日時:2015/06/02 21:00
  • himanandesuさん
    ARAGOを色々検索してみました。主に本が出てきました。高すぎて買えそうもなかったり、在庫がなかったりで買ったとしてもプログラムが何かもよくわからない初心者に理解できる感じでもなさそうです。他にもない事もないのですが、何を書いてあるのかわかりませんでした。折角アドバイスいただいたのにすみません……。ザザンパシフィックさんという会社が作られてたのは初めて知りました。現在は存在しないのですね、残念です。情報ありがとうございました。

      補足日時:2015/06/03 00:04
  • himanandesu様
    再度お返事ありがとうございます。コンパイルとインタプリタの見分け方がわかりませんが、普段使っているシステム上でグリーンの文字の項目が出して編集を選択して直接プログラムコードを入力して動かしてたと思います。あっという間に治してた感じです。インタプリタ?なのでしょうか。quicksilverというものは見当たらない感じでした。曖昧な言い方ですみません。
    使っている環境はバーチャルPCのXPモードです。その上にDOSの様なウインドウを出して動くシステムでした。

      補足日時:2015/06/05 21:06
  • force-be-with-you様
    ご丁寧でご丁寧にありがとうございます。普通はアイコンをダブルクリックで起動し、日本語でメニューが表示されます。なんかの拍子でプログラムコードを入力する画面が現れる時があります。(XL[1]〉と出る)その時はquitと入力するとシステムが終了するのでインタプリタだと思います。何故dBASEⅲかと思ったかというと、このファイルはdBASEⅲではありませんというエラーが出たからです。プログラムというよりdbfファイルが破損した様なのでそのファイルさえ治ればいいのかと思ったのですが素人では難しいでしょうか。バックアップは取ってあるかもわからなく探してもどこにあるのかさっぱりわからないので、やはり近場のソフトハウスのプロに任せた方が良さそうですね。残党がいらっしゃると聞いて少し救われた気持になりました。ありがとうございました。

      補足日時:2015/06/06 07:35
  • force-be-with-you様
    ご丁寧にご回答ありがとうございます!#6のご回答ですが、プログラムはさっぱりわからないので、quitしか入力しません。素人が触ると危険だと思っていますので。dbf を zap 、その後 append from、そして reindexの下りはわかりません…。
    DBF Viewer Plusはちょっと拝見しましたところExcelの様な感じなのですね。
    原因と思われるファイルと同じ名前で保存して差し替えてみるとかだけでは済まないのでしょうか。
    本当はforce-be-with-you様のようなお詳しい方を募集して見ていただけたら良いのでしょうが、この場では個人間のやりとりは禁止されているので募集は出来ない様です。残念です。
    取引先は全く関係ないシステムです。

      補足日時:2015/06/06 23:45

A 回答 (8件)

DBF Viewer Plus で読み込ませてみます。

読めたのなら(◆Table Type が xBaseIIIであることを確認します)別名で保存して、その後、別ディレクトリにコピーします。OS上で、コピーしたファイルのフィル名を該当名に変更します。出来たファイルを本番環境にコピーして試してみても良いかと。但し、インデックスファイルを使用していないことが条件です(下記参照)。
◆Table Infoで見て《FoxBASE+/Dbase III plus, no memo》とあればok。違ったらアウト。

インデックスと同期がとれていない状態で業務システムを使うと、リンゴを更新したつもりがイチゴを更新していた、等となります。

上記で上手く行っても(at your own risk)、そちらのシステムで、ずっとOKとは限りません。20年ほど前、dBase iii (plus), dBXL, Excel97 で相互運用をかましたシステムで良く発生していた障害(インデックス関係なくとも)です。これに dbf ファイルの level が絡むと、何が何やら。

その頃、小さな会社の社長や専務が、dBXL で自社システムを作っていたな。それでも、複数テーブルでインデックスを使っていたっけ。それらのシステムはどうなったんだろう。そういえば、dBase iii と dBase iii plus って微妙にちがうんだ。
閑話休題
dBXL じゃ引っ掛からないので...
google [dBase 開発 請負]

***確認方法
その1
>差し替えてみるとかだけでは
これが出来るという事は、該当ディレクトリが分かると云うことですよね。そこで確認(*.ndx ファイルが存在しない事)できます。
その2
XPのデスクトップアイコンをダブルクリックした直後状態が、dBXL INTRO 状態なのか、作りこまれた業務メニューなのかが判然としないのですが。
[F4] で下記が実行されます。
XL[1] > dir
上記の様にやって、*.ndx ファイルが存在しない事。

Q. 起動直後って、《業務メニュー》なんですよね? 【回答希望】

***
ps.
分かっている人向け[素人が手を出すと火傷する]
google [dbf ファイル 修復]
    • good
    • 0
この回答へのお礼

force-be-with-you様
何度もお手数おかけして申し訳ありません。ご丁寧にありがとうございました。
確かに素人考えで少しでも手を出してしまうと危険そうですね……。
検索キーワード、ありがとうございます。
プロを探してみる事にします。凄く参考になりました。
本当にありがとうございました!

お礼日時:2015/06/07 23:31

#4 です。

追加情報その2です。

引っ掛かっているデータが、取引先様から提供されたものだったりする?

たとえレベル 3 のデータでも、言語処理系メーカーやツールによって、細部が異なっていたりします。内部で1バイトだけ増えていた様な仕様変更もありましたから。

もしそうならば、取引先様に『何か変更があったか』確認を入れてみて下さい。その結果、どちらで対応することになるのか?
    • good
    • 0

#4 です。

追加情報です。
時間制限がきつくなければ、頑張ってみれば?

>(XL[1]〉と出る)その時はquitと入力すると
バージョンは不明ですが、dbXL 確定ですね。

> なんかの拍子でプログラムコードを入力すると
完成された *.prg ファイルを do コマンドで起動しているのではなく、対話的(one liner)に使用されているご様子です。
既存コードの修正中に、漢字入力 [F7] でコケた?...ありそう。
[F1], [F2] は、それぞれメニューが画面上部に出てきますし、他のファンクションキーだと対応できないと思います。ファンクションキーは、必要以上に触らないで。

XL[1] > dir
小さなシステムであれば、同一ディレクトリにフラット展開している事が多いので、上記で使用ファイルが分かります。

> プログラムコードを入力する画面...XL[1] >
"dbXL プロンプト"といいます。

> このファイルはdBASEⅲではありません
またエスパーですが、他のツールで dbf ファイルを修正したために起こったものと考えられます。level 3 から level 4 にでも変わった?

XL[1] > use hoge
上記の様に、使用宣言しているテーブルが1つだけならば、しかも、ロジックの解らない *.prg を使わなければならない状況でなければ、コピーした *.dbf ファイルを Excel で読んで、サクッと他のツールに移行するという手もありますよ。インデックスが使えなくなりますが。項目の属性(数値の 0 と 文字の 000 の違い)が重要な場合は、下記のツールを試してみて下さい。

Free のツールに DBF Viewer Plus というのがあります。日本語OK。これは、私が Excel じゃ問題があるときに使っているツールです。
level 3,4,7 に対応しています。

上記ツールを使って level 3 のファイル(別名で)を作った後、本番環境の dbf を zap 、その後 append from、そして reindex。これでいけるハズ。(reindex は *.prg を見て確認)
zap, append from, reindex これらの意味が分からなければ、プロに任せた方が無難です。

CSV (DBF Viewer Plusで読んで Export) にしたのを append from でもいいですよ。こちらの方が手軽かも、但し、文字の 000 が数値の 0 になってしまう。

lvel 4 と level 5 は、ツールによってサポートしていない場合があります。
    • good
    • 0

#4 です。

準備している間に、質問者からのレスが来てた...orz.

>直接プログラムコードを入力して
XL [1] > DO HOGE とかで起動していたら、インタプリタですね。

プログラムを起動した状態で、

dbXL だったら、DOS窓のタイトルバーに、cmd-dbxl とか出ていませんか。
dBXL Release x.x
Copyright ...
XL [1] >

dBaseIII だったら、DOS窓のタイトルバーに、DBase III とか出ていませんか。

ie などで dBase iii で画像検索すると、何を使用しているかが分かるかも。
    • good
    • 1

もう解決しているかも知れませんが。



エスパーしてみましょうか。原因を掴まないと、また発生しますよ。WinXPのDOS窓で使用。電源プッツンか、マルチユーザーで使用してインデックスが壊れた。対応方法は、インデックス再構築。業務用なら、メニュー上に障害対策関連があり、その中にあるのでは?フロッピーで運用でディスクフルなんてことは無いと思いますが。

コンパイル済の EXE で動いているのであれば、それしか手が無いと思います。プログラムの拡張子が PRG であれば、インタープリタで動作しているでしょうから、最終的には対応可能でしょう。

個人使用で、あなたがメンテナンスしないといけないのですか。Dos版か、Win3.1版か、dBaseIV, dbXL Arago, VisualFoxPro あたりまでの可能性があるので、中を見てみないと、詳しいことは言えません。せめて、データファイルの拡張子が分かれば(*.dbf以外)、処理系の判断が付くと思います。エクスプローラー《IEでない》で見ることに慣れていれば、調べは付きます。画面のハードコピーをupしてもらってもOK。個人情報関連は消してね。

業務用であれば、正常稼働していた最終時点のバックアップよりリストアして、インデックスの再構築がベストです。(20万件のデータだったりすると、タイミングを月一度に限定とかあるので、設計書が無いとある程度博打?)

で、どうやってですが。障害PCがある都道府県と、連絡用の捨てメアドを提示してもらえれば、経験者から連絡が行くのでは。後は、近場のソフトハウス(小さいとこ:時間単価の関係)に電話して聞きまくるとか。dBase の本家も dBase plus 8 with ADO で日本語対応(2013.05)したし(最新バージョンは 9.5.1)、残党はまだいますよ。

初回答なので、規約無視していたら失礼。
    • good
    • 0

#2です。



ところでそのシステムはdBXLのインタプリタで動いているものか、それともQuickSilverでコンパイルされたものなのか、そのあたりはどうなのでしょうか?
もしコンパイルされた状態でご使用中であればソースとコンパイル環境がないとどうしようもないと思いますが。

またdBASEやdBXLは元々DOSで動くものですし、今もそれがそのまま使われているというのもなんだか不思議な気がします。データベースだけは昔のままで、なにか別のソフトが使用されていることもありそうに思います。
    • good
    • 0

サザンパシフィック 懐かしいですね。


最初はdBXLで業務用のソフトをつくろうとしてQuickSilverも買ったりしましたが、売っているソフトで済ませることに。
データ保守も大変なので結局はそれで正解でしたけど。

その後dBXLはARAGOになりましたから、ARAGOで検索かけるとなにかがひっかかってくるかもしれませんね。
    • good
    • 0

dBASEⅢPLUS必携バイブル(技術評論社)という本は持っていますが・・・。

    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!