0

特定の質問:VARCHARMAPPING =TrueはVisualFoxProのAdoOleDB接続で機能しますか?もしそうなら、接続文字列はどのように見えるべきですか?

古いビジュアルfoxproデータベースの一部をベースとして使用するDelphiアプリケーションを開発しています。今朝、私はデータベースへの接続が機能し、すべての目的と目的で正しいことを実行しましたが、現在はそうではありません。

うまくいったのはvarcharmapping、つまりパディングなしでした。

Delphi 2010、ADOConnection、AdoQueryを使用。Microsoft Visual FoxPro9.0Sp2を使用します。新しいものがあれば教えてください。

接続文字列は次のようになります。

'Provider=VFPOLEDB.1;Data Source=C:\PROGRAMDATA\Folder\DataFolder;Collating Sequence=SWEFIN;DSN="";VARCHARMAPPING=True;'

私はすべての属性があるというすべての順列を試しましたが(それはそう感じます)、役に立ちませんでした。どんな提案でも大歓迎です。

4

1 に答える 1

1

SET VARCHARMAPPINGコマンドは、Visual FoxproがFoxproアプリケーション内でカーソル(ADOレコードセットと同様ですが非常に異なる)を生成する方法を決定するために使用されます。このコマンドはFoxproカーソルに厳密に影響し、Visual FoxProOleDBプロバイダーではサポートされていません。

最善の代替策は、列にvarcharデータ型を使用するようにFoxProデータベースを変更することだと思います。この問題の理由は、SQLServerのcharデータ型とvarcharデータ型の違いと同じです。

charは固定幅の列です。レコード内のデータが列を完全に埋めていない場合は、パディングが追加されます。これは、可変長フィールドであるvarcharには当てはまらず、必要なだけのスペースを割り当てます(つまり、パディングなし)。

更新 varcharデータ型を使用している場合でも、パディングが発生する可能性があります。したがって、互換性の理由から、常に値をトリミングする必要があります。

于 2010-10-29T18:43:41.073 に答える