LiveCode を使用してこの問題が発生していますが、そこに問題があるのか、それとも ODBC ドライバーに関係しているのかはわかりません。
LiveCode で構築されたアプリは、ODBC 経由で SQL Server データベースに定期的に接続し、さまざまなデータを取得します。
データベースを担当するアプリケーションがアップグレードされており、その一環として、すべてのテキスト フィールドが Unicode テキスト フィールドに変換されています。基本的にこれは、以前に varchar として定義されていたフィールドが nvarchar として定義され、以前にテキストとして定義されていたフィールドが ntext として定義されるようになったことを意味します。(ちなみにこれはSQL Server 2008です。)
これまで常に使用してきたクエリを使用して、テキスト全体ではなく 1 文字 (フィールドの最初の文字) を取得するようになりました。今のところ、select クエリで varchar への変換を指定することで回避できます。たとえば、アプリが SELECT id, name FROM tab1 のようなリクエストを作成していた場合、SELECT id, convert(varchar(255) のようなリクエストを作成するようになりました。 , name) AS name FROM tab1
それはうまくいきます-私は以前に取得したものを取り戻します-しかし、(a)それは不器用であり、(b)クライアントが既存のすべてのデータをデータベースに移行しているとき、これは今のところ問題ありませんが、遅かれ早かれ実際にこのアップグレードの利点は、いくつかの Unicode 文字をフィールドに入力することです。
残念ながら、テスト データを挿入するためのデータベースやアプリケーションにアクセスすることはできませんが、この問題が発生すると想定しています。アプリは、入力されたデータを処理していません (ただし、処理していると考えています)。
では、現在の ODBC ドライバーを使用する LiveCode アプリで、nvarchar または ntext フィールドから完全なデータを正しく取得する方法はありますか?