1

エラーが発生しています

No data! (sqlJadual)

このクエリから

mssql_query("SELECT * 
             from tblstatusjadual 
             where idjadual like '1%' and 
                   tahun='2011' 
             order by idjadual") or die('No data! (sqlJadual)');

しかし、私はそれを

mssql_query("SELECT idjadual,status 
             from tblstatusjadual 
             where idjadual like '1%' and 
             tahun='2011' 
             order by idjadual") or die('No data! (sqlJadual)');

それは正常に動作します。

2 つのフィールドからのみ選択する場合は問題ありませんが、15 を超えるフィールドを選択する場合、クエリが長くなり、混乱します。

私の質問は、mssql がクエリで select * をサポートしていないということですか?

どんな助けでも大歓迎です!

4

2 に答える 2

0

ここで私のコメントを回答として言及しています。なぜなら、それはあなたを助け、次に誰かが同様の状況を訪れたり直面したりするときに、彼/彼女はこれを参照するかもしれません(上記のコメントの一連の文字列全体をスキャンする代わりに)。

SELECT *テーブルに対してを発行し、MSSQLテーブルにTEXT空白文字列の列が含まれている場合は、次のいずれかを行います。

1) その列のデータ型をvarchar
2) に変更します。2) 列の値を空白文字列から にリセットしますNULL

作品を作ることSELECT *

(別の注意として、を使用する代わりに、SELECT *本当に必要な列のみをクエリに含めることをお勧めします。)

于 2012-08-14T16:50:20.217 に答える
0

列の数とそのタイプによって異なります。(たとえば) 列タイプの 1 つが BLOB であり、ドライバーがそれを保持するために行データ構造で 2GB を使用できるようにしている可能性があります (これは、不適切に作成された JDBC ドライバーで以前に見たことがあります)。

それを確認する最善の方法は、失敗するまで、2 番目のクエリに( と 以外の) 他の列を徐々に追加するscheduleことです。year間違った列があれば、おそらくそれを教えてくれるでしょう。

また、dieステートメントを次のように変更します。

die(mssql_get_last_message())

うまくいけば、失敗メッセージが何であるかを確認できます。

そして、それに対するあなたの反応に基づいて:

Unicode のみの照合の Unicode データまたは ntext データは、DB-Library (ISQL など) または ODBC バージョン 3.7 以前を使用してクライアントに送信できません。

データベースとそれにアクセスするために使用しているライブラリとの間の機能の不一致のようです。

Unicode は一般に良いものとして受け入れられているので、それに固執し、それを処理できる新しいバージョンの MSSQL (または基礎となる ODBC ドライバー) があるかどうかを確認します。

このページには、問題に対処するためのアドバイスもあります。


次のエラー メッセージが表示された場合:「Unicode のみの照合または ntext データの Unicode データは、DB-Library (ISQL など) または ODBC バージョン 3.7 以前を使用してクライアントに送信できません。」

/etc/freetds/freetds.conf に、次の 2 行 (最後の 2 行) を追加します。

[global]
;tds version = 4.2
tds version = 8.0
client charset = UTF-8

php.ini でも「charset」を編集できます (ただし、以前に freetds.conf で編集した場合は必要ありません)。

; Specify client character set..
; If empty or not set the client charset from freetds.comf is used
; This is only used when compiled with FreeTDS
mssql.charset = "UTF-8"
于 2012-08-14T05:22:50.860 に答える