1

私のアプリケーションの 1 つで、Delphi 7、Sql サーバー 2008 R2、BDE を使用しています。SQL サーバーのネイティブ クライアント ドライバーを使用して、odbc 経由で bde を使用してデータベースに接続します。

挿入は常に機能しますが、編集に失敗した場所もあります。Delphi で EDBEngineError が発生します [Sql ネイティブ クライアント 10.0] 文字列データの長さが一致しません。

テーブルに 4 つのテキスト フィールド (SQL データ型 TEXT) があります。これらのフィールド行にコメントを付けると、編集が機能します。

この問題を解決するために誰か助けてください。

BDE が減価償却されていることは知っていますが、これはデータベースの移行です。これは大きなアプリケーションなので、BDE から変更したくありません。上記の状況を除いて、すべてが正常に機能しています。

【下手な英語ですみません】

4

1 に答える 1

0

ここでの理由は BDE ではないかと思います。BDE は、SQL Server 2008 以降で動作するようには設計されていません。最近、Informix で同様の問題が発生しました (間違った文字列の長さに関係するアクセス違反)。

BDE が問題であるかどうかを本当に確認するためにできることは、文字列長エラーを取得する SQL ステートメントをキャプチャし、BDE レイヤーを介さずに直接 ODBC ドライバーを使用して同じ SQL を実行することです (たとえば、いくつかの SQL から)。 -ODBC 経由で接続するエディター)。私はあなたがもう問題を理解しないに違いない。

于 2013-01-25T14:27:24.460 に答える