問題タブ [visual-foxpro]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - VB.net 2005 で FoxPro テーブルを開く
oledb 接続を使用して、vb.net で foxpro フリー テーブルを開く必要があります。
しかし...列名だけを取得する必要があります。何かを「選択」する必要はありません。すべての空きテーブルを動的に参照し、すべてのファイルからすべての列のリストを設定し、各列の説明を含む別の空きテーブルに xref しようとしています。
私は現在、実用的なモデルを持っていますが、そうする必要があります...
しかし、最大のテーブルでは、最初のレコードを読み取るだけで 2 分以上かかり、250 を超えるテーブルがあります。全体で、15 ~ 20 分かかります。
または、「ORDER BY」を使用せずにテーブルの最初のレコードのみを取得する別の方法はありますか?
これが私がこれまでに持っているものです。「ファイル」はパラメーターとして渡されます。
「C:\data\table1.dbf」のような情報が含まれます
次に、データ テーブル (dt) を取得し、ループして列情報を取得します。
データセットを作成し、ウィザードを使用してディレクトリからすべてのテーブルをロードするときに、Visual Studio と同じくらい速く処理したいと考えています。テーブルからデータを読み取ることなく、すべての列情報を非常に迅速に見つけることができます。
さらに情報が必要な場合はお知らせください。
ありがとう。
sql-server - SQL Server 2005 データベースとの ODBC 接続が失われる
クライアントの 1 つは、SQL Server 2005 バックエンド上でアプリケーション (FoxPro 9) を実行しています。断続的に、SQL Server データベースとの ODBC 接続が失われています。以下は初期エラー情報です。
エラー メッセージ: 接続エラー: [Microsoft][ODBC SQL Server ドライバー][DBNETLIB]ConnectionRead (recv())。
ODBC エラー メッセージ: [Microsoft][ODBC SQL Server ドライバー][DBNETLIB]ConnectionRead (recv())。
SQL 状態: 01000
ODBC エラー番号: 10054
ODBC ハンドル: 1
FoxPro エラー番号: 1526
コマンドでこのエラーを再現することはできません。私たちは何度も解決策を試しましたが、役に立ちませんでした。私たちが見つけたそのようなハードウェア ベース ソリューションの 1 つは、http ://support.microsoft.com/kb/942861/en-us に記載されています。
これについて言及するのは、これまで見てきたものとほぼ完全に一致するからです。ただし、その投稿 (およびこの投稿http://support.microsoft.com/kb/948496 )に記載されているすべての回避策を実装しましたが、問題は引き続き発生します。
この問題は、実行時間の長いクエリの実行後に現れるようですが、アプリケーションまたは SQL Server からタイムアウト エラーを受け取っていません。プログラムの実行中にアイドル タイムアウトが発生することがあるからです。
私はハードウェアの専門家ではありませんが、ネットワークとサーバー (Windows Server 2003) の両方が高速で、適切に設計されているようです。ただし、データベース サーバーに大きな負荷がかかる場合があります。
私たちが試すことができることについて誰か提案があれば...私たちに知らせてください!
c# - .NET を使用して FoxPro メモ フィールドのデータを抽出するにはどうすればよいですか?
FoxPro データベースを XML に変換する C# プログラムを作成していますが、メモ フィールドが空白であること以外はすべて機能します。そのビットを変換するために欠けているものはありますか?
C# .Net 3.5 SP1、Visual FoxPro 9 SP 1 OLE DB ドライバーを使用しています。他のすべてのデータが適切にプルされているため、接続文字列は問題ありません。
FoxPro データベースを SQL Server に変換したところ、メモ欄も空欄になってしまい、2 回変換できませんでした。
foxpro - foxpro の一般フィールドからファイルを抽出できますか?
VFP 9 アプリケーションを SQL Server に移植しています。VFP アプリには、「一般」フィールドを含むいくつかのテーブルがあります。フィールドにクエリを実行するとバイト配列が取得され、それをディスクに保存すると、内部を見て、それが Word ドキュメントや Paint BMP などであることがわかります。
いろいろ読んでみると、general フィールドは独自のフォーマットであり、ドキュメントのプレビューのサムネイル画像が含まれていることがわかりました (特にそうです)。
最初にファイルの種類を抽出し、次に元のファイルとして保存できる実際のファイル データを抽出するコードを教えてください。(プレビュー画像を取得するのもいいでしょう。)
どうやら昔、誰かが foxpro で GENTOFIL.PRG というプログラムを書きました。これは、一般的なフィールドをファイルに変換するように聞こえます。しかし、それを見つけようとするとき、グーグルはあまり役に立ちません!
sql - ライブ環境で、ある SQL データベースから別の SQL データベースに効果的にデータを変換する
データベースが少し乱雑な状況になっています。
私たちのメインのバックオフィス システムは、ローカル データを使用して Visual Fox Pro で作成されています (はい、知っています!)。
ウェブサイトのデータを効果的に扱うために、定期的にデータを SQL データベースにエクスポートすることを選択しました。ただし、これを行うプロセスでは、基本的に毎回テーブルがクリアされ、再挿入が行われます。
これは、2 つの SQL データベースがあることを意味します。1 つは FoxPro エクスポート プロセスが書き込むデータベースで、もう 1 つは Web サイトが読み取るデータベースです。
この質問は、ある SQL データベースから別の SQL データベースへの変換に関するものです (SqlFoxProData -> SqlWebData)。
特定のテーブル (メイン アプリケーション テーブルの 1 つ) については、このプロセス中にさまざまなデータ変換が行われるため、自己結合を使用した簡単な UPDATE、INSERT、および DELETE ステートメントではなく、代わりにカーソルを使用する必要があります ( !)
これは何ヶ月もうまく機能していますが、現在、更新が行われているときにパフォーマンスの問題が発生し始めています (これは日中に定期的に発生する可能性があります)。
基本的に、SqlFoxProData.ImportantTable から SqlWebData.ImportantTable を更新しているときに、ライブ Web サイトで接続タイムアウト/デッドロック/その他の問題が発生することがあります。
クエリの最適化、キャッシュなどに懸命に取り組んできましたが、データを更新するための別の戦略を探しているところまで来ました。
頭に浮かんだ 1 つのアイデアは、ImportantTable の 2 つのコピー (A と B) を用意し、どのテーブルが現在「アクティブ」であるかという概念を持ち、非アクティブなテーブルを更新してから、現在のアクティビティ テーブルを切り替えることです。
つまり、ImportantTableB を更新している間に、ImportantTableA から Web サイトを読み取り、その後、ImportantTableB から読み取るように Web サイトを切り替えます。
質問は、これは実現可能であり、良い考えですか? 私は以前にそのようなことをしたことがありますが、最適化/インデックス作成などに必ずしも良いとは確信していません.
任意の提案を歓迎します。これが厄介な状況であることはわかっています...長期的な目標は、FoxPro アプリケーションが SQL を指すようにすることです。
(役立つ場合は、SQL 2005 を使用しています)
データは常に少し古くなっているため、インスタンスではデータの一貫性は特に重要ではないことを付け加えておきます。
sql-server - SQL Server x64 および x86 リンク サーバー
SQL Server からアクセスする必要がある Visual FoxPro テーブルがあります。Sql Server x86 では、リンク サーバーを作成するだけです。残念ながら、VFP 用の x64 ドライバーはありません。そのため、Sql Server x64 はそれにリンクされたサーバーを作成できません。
これまでのところ、次のオプションを思いつきましたが、どれも特に好きではありません。
- クエリが x64 -> x86 -> VFP から移動するように、x86 Sql Server をリレーとして使用するように設定します。
私は開発者であることに加えて、システム管理者でもあるので、これはあまり気にしません。したがって、これは、さらに別の Sql Server にパッチを適用し、維持し、監視する必要があることを意味します (別のインスタンスを使用するだけではない場合)。
また、VFP プロバイダーは 4 つの部分の構文では機能しないため、OPENQUERY を使用する必要があります。OPENQUERY ステートメントを別の OPENQUERY ステートメントに埋め込むために発生する必要があるすべての一重引用符のエスケープを考えると、頭が回転します....
- CLR テーブル値関数を作成しますが、アセンブリは (おそらく?) x64 でもあるため、実際にクエリを実行するには、proc (IPC? Webservice?) を実行する必要があります。
TVF にはスキーマが必要であることが判明したため、このオプションは最初に考えたほどクリーンではありません。私は、WCF クライアントを MSSQL に入れるためにスパイクを行いました。MSSQL は、Sql XML データ型関数で解析できる XML の単一の列を返します。それは機能し、実際には変数をパラメーターとして受け取るため、OPENQUERY よりもクエリに少し適しています。これにより、一重引用符と EXEC ダンスのほとんどを節約できます。
もちろん、Sql 内の WCF は完全にサポートされておらず、かなり大きなハックのような匂いがします。私は、パフォーマンスと信頼性に関してかなり深刻な懸念があります。
- Sql Server から VFP へのクエリの作成を停止し、かなりの量のクライアント コードを書き直します。
明らかに、これは「正しい」答えです。ただし、Sql Server テーブルと VFP テーブル間の結合に依存するクライアント コードがかなりあります。これを書き直して一時テーブルにデータを入力したり、クライアント側の結合を実行したりするのは、かなり大きな負担のようです。
誰かがより良い代替案、または同様の経験を提案できることを願っています.
arrays - Visual FoxPro 9 OLEPUBLIC クラスから配列を返すにはどうすればよいですか?
FoxPro の初心者 (しかし Clipper のベテラン) として、次の OLEPUBLIC クラスから配列を返す方法を理解するのに少し途方に暮れています。編集:以下の@Stuartによる発言を考慮して、以下のコードを変更しました。
次の VBScript があれば、問題なくファイルを開くことができます。私ができないように見えるのは、エラーメッセージよりも役立つものを取り戻すことです。
これはエラーメッセージです:
c:\temp\foo.vbs(3, 1) sloop.db sloop.db: .getrecord p:\testing\sloop\sloop.prg 41 行目のエラー 構文エラーです。200
結局のところ、41行目は
これはマイクロソフトが提案する構文であるため、非常に奇妙です。手がかりはありますか?
uniqueidentifier - VFPで一意のIDを作成する
郵送情報(zip5、住所、姓、名)に基づいてVFPで一意のレコードIDを作成する必要があります。作成されると、リレーショナルテーブルは一意のIDでSQLServer7に読み込まれます。何か提案はありますか?