問題タブ [dbf]
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.
ado.net - ADO.NET を使用して、列のデータ型が正しく定義されていない DBF ファイルを読み取るにはどうすればよいですか?
サードパーティによって生成されたいくつかの DBF ファイルがあり、それらをクエリできるようにする必要があります。すべての列タイプが文字として定義されているため、問題が発生していますが、これらのフィールドの一部のデータには実際にはバイナリ データが含まれています。OleDbDataReader を文字列または文字配列以外として使用してこれらのフィールドを読み取ろうとすると、InvalidCastException がスローされますが、それらをバイナリ値として読み取るか、読み取った後に少なくともキャスト/変換できる必要があります。 . 実際にテキストを含む列は、期待どおりに返されています。
たとえば、最初の列は長さ 2 バイトの文字フィールドとして定義されていますが、このフィールドには 16 ビット整数が含まれています。
最初の列を読み取って適切なデータ型に変換する次のテスト コードを作成しましたが、値が正しく出力されません。
データベースの最初の行の最初の列の値は 17365 (0x43D5) です。次のコードを実行すると、最終的に 17215 (0x433F) になります。データリーダーによって返された文字列からバイトを取得するためにASCIIエンコーディングを使用する必要があると確信していますが、必要な形式に値を取得する別の方法はわかりません。独自の DBF リーダーを作成し、絶対に必要でない限り、ADO.NET を完全にバイパスします。どんな助けでも大歓迎です。
sql - PHP を使用した Visual foxpro DBF の更新
ADO COMを使用してVFP 9.0でいくつかのテーブルを更新するためにphpを使用しています。
Where句を指定するまで、DBFを選択して更新できます。
クエリに where 句を追加すると、単に 0 行が返されるか更新されます。
結果:
コード 2: Where 句あり
結果:
ID 列は、上の表のキーです。
私はVFPに比較的慣れていません。これがVisual Foxproの設定なのか、それとも更新を妨げているのか、選択的に行われた場合は選択されたのかはわかりません。
db2 - DB2 DPF インスタンスのすべてのノードにテーブルを複製するにはどうすればよいですか?
パーティション化されたいくつかの大きなテーブルと、パーティション化されていないいくつかの小さなテーブルを持つ dpf インスタンスがあります。パフォーマンス上の理由から、パーティションの各ノードに小さなテーブルが完全に存在するようにしたいと思います。db2 でこれらの小さなテーブルを各ノードに完全に複製するにはどうすればよいですか?
c# - C#で作成された.dbfテーブルの列の順序を保持するにはどうすればよいですか?
別のアプリケーションにデータをインポートするために必要なため、Visual C#を使用して.dbfテーブルを作成しようとしています。そのためには、列の順序が正確である必要があります。そうでない場合、アプリケーションはテーブルを受け入れません。これまでは正常に機能していましたが、最近、テーブルの構造にいくつかの変更を加える必要があり、CREATEステートメントの正確な位置に列を追加しました。私が得ている問題は、Visual Fox Proで作成した後にテーブルを開くと、新しい列がテーブルの最後にあり、配置した場所ではないということです。
私のコードは次のとおりです。
CNP_COPIL、DATA_ACORD、LOC_PRESなどの列は新しい列の一部であり、Visual FoxProでCREATECOMMANDを実行した場合でも、常に最後に配置されます。
また、毎回空のテーブルを作成してデータを入力することもできます。テーブルを変更する必要がないため、変更は行いません。毎月新しいテーブルがあります。
そして、テーブルが新しいものであり、その場所から以前のすべての列を削除したとしても、なぜ「新しい列」が最後に配置されるのかわからないようです。
sql - DBFファイルからSQLServer2008に移行するにはどうすればよいですか?
DBFファイルを使用するアプリケーションがあり、それらをSQL Server 2008にインポートする必要があります。ただし、途中で一部のデータを変更する必要があり、一部の列はテーブルに追加され、他の列は非推奨になります。
これまでのところ、DBF->アクセス-> MS Migration Assistant-> SQL Server 2008を使用しています。しかし、それを処理するためのより良い方法が必要だと思います。インポート時にデータを変更できないため、移行アシスタントを使用しないようにします。
c# - ファイルのパス/名前にスペースがある場合に System.Data.Odbc.OdbcConnection で DBF ファイルをクエリする
System.Data.Odbc.OdbcConnection を使用して DBF ファイルをクエリしようとしています。ファイルにスペースが含まれていない場合は正しく動作しますが、ファイル パスまたはname にスペースが含まれています。
私は次のコードを使用しています:
oConn = 新しい System.Data.Odbc.OdbcConnection(); oConn.ConnectionString = "Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=NA;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
oCmd.CommandText = "SELECT * FROM C:\test 2\12345678.dbf";
コマンド テキストはハードコードされていません。簡単にするために、そのように含めました。アプリケーションは、ユーザーが DBF ファイルを選択して表示できるように設定されています。ユーザーがDBFファイルを保存する場所を制御することはできません。ファイル名/パスにスペースを入れないように覚えておく必要はありません。
ファイル名/パスのスペースをエスケープするにはどうすればよいですか?
language-agnostic - utf-8をサポートしない形式でUnicodeデータを保存する方法
さて、ここにさらに別の文字エンコードの質問があります。これは、Unicodeのすべてについての私の無知を示しています。
Microsoft Excel.xls
ファイルからデータを読み取り、ESRIシェープファイルに保存しています.shp
。Excelのバージョンが5.0を超える場合、ExcelファイルのテキストはUnicodeとして保存されます。ただし、Unicode(および特にUTF-8
シェープファイルのサポートには一貫性がないため、まったく使用しないでください。ただし、シェープファイルは古い学校のコードページをサポートしています。
Unicode文字列を未知であるが特定のコードページの文字列に変換する必要がある状況でのベストプラクティスは何ですか?
私が理解しているように、Unicode文字列には複数の「コードページ」の文字を含めることができます。したがって、使用する「最適な」コードページを何らかの方法で見積もり、サポートされていないすべての文字をそのコードページ(または恐ろしい?
)で最も近いものに変換する必要があると思います。これは通常のアプローチですか?
私は間違いなくシステムコードページ以上のものを使うことができます。.shp
ファイルはファイルを使用して属性データを格納するため.dbf
、少なくとも.dbf
フォーマットで指定されたすべてのコードページがサポートされている必要があります(xBaseフォーマットの説明を参照)。サポート されているコードページ は次DOS USA
のとおりです。、、、、、、、、、、、、、、、、、、、、DOS Multilingual,
Windows ANSI,
Standard Macintosh
_ EE MS-DOS
_ Nordic MS-DOS
_Russian MS-DOS
Icelandic MS-DOS
Kamenicky (Czech) MS-DOS
Mazovia (Polish) MS-DOS
Greek MS-DOS (437G)
Turkish MS-DOS
Russian Macintosh
Eastern European Macintosh
Greek Macintosh
Windows EE
Russian Windows
Turkish Windows
Greek Windows
さらに、一部のアプリケーションは、使用する*.cpg
追加のコードページを指定するファイルの使用をサポートしています(ただし、のサポートは理解しておりutf-8
、他の多くのコードページは制限されていると思います)。
私は汎用ツールを開発しようとしているので、.xls
ファイル内のUnicodeの内容については何も想定できません。
c# - C# から OLEDB 経由で更新を実行中にエラーが発生しました
C# から .dbf データベースのデータを更新するために OLEDB を使用しています。
ExecuteNonQuery でエラー: System.Data.OleDb.OleDbException {"Undefined function 'replace' in expression."} が発生します。
最小限の変更でこれを機能させるにはどうすればよいですか。多くのファイルで二重引用符を一重引用符に置き換える必要があるため、このプロセスを自動化する必要があります。
.dbf データベースに対して ODBC などを試す必要がありますか?
助けてください!
.net - C# から .dbf を処理する最適な方法
C# から .dbf ファイルを更新するには、どのデータ プロバイダーを使用できますか?
DataSource を作成するためにいくつかの異なる .dbf プロバイダーを試してみましたが、次のようなメッセージが表示されます。
または、更新関数を使用してデータセットとデータアダプターを生成したときに、「変更された行を含む DataRow コレクションを渡すと、更新には有効な UpdateCommand が必要です」というメッセージが表示されました。
多くの更新でC#から.dbfを操作する方法を誰かが知っている場合は、助けてください。行を 1 つずつ更新しようとすると、プロバイダーが大きな .dbf ファイルを検索するのに時間がかかりすぎるため、遅すぎます。インデックスを自動的に構築する方法があり、データソースがそれを使用することを知っているのではないでしょうか?
別の方法は、すべてをデータセットのようなものにロードし、すべての変更が完了した後に更新することですが、更新部分は今のところ機能していません。
助けてください!
dbf - 最初の .DBF バイトを読み取ることで想定できるヘッダー形式はどれですか?
.DBF ファイルの最初のバイトと、使用されている xbase のバージョン (つまり、ファイルの残りの形式) を検出する方法に関して、私がコンパイルできる最も包括的なリストは次のとおりです。
最初の .DBF バイトを読み取ることで想定できるヘッダー形式はどれですか? (つまり、ファイルはバージョン 2 ヘッダー、バージョン 3 から 5 ヘッダー、またはバージョン 7 ヘッダーを使用していますか?) 最適なロジックが何であるかはまったく明確ではありません...