真夜中のSEの皆さんご苦労様です。

ASPでODBC接続で悩んでいます。SQLで、文字列をシングルクオートで囲むとエラーになってしまうのです。シングルを使わなければエラーは起きません。エラーの種類は「関数シーケンスエラー」です。シングルクオートが使えないバージョンなどあるんでしょうか。困り果てて死にそうです。どうか助けてください。ズバリの回答には200ポイント差し上げます。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:tailliar No.1

回答回数109ベストアンサー獲得回数0

ポイント20pt

シングルクォートで囲むというのは、

strSQL = ”SELECT * FROM TABLE WHERE USER=’001’”

というのがダメなのでしょうか?


つい先日ASP.NET+ODBCの仕事をしたところですが、上のようなやりかたで普通に大丈夫でしたが・・・

お返事くだされば対策考えます。

id:MASHMASH

テストサーバーと本番サーバーでODBCのバージョンが違って、同じSQLServerに接続してるのに、本番サ-バー(古い)では、このエラーが出てしまいます

2005/06/18 00:54:36
id:tailliar No.2

回答回数109ベストアンサー獲得回数0

ポイント20pt

私もASP.NET+SqlServerでした。

バージョンが違うのは・・・_| ̄|○

1)テストサーバの環境を本番にあわせる

今のままでいくなら、王道はやはりこれだと思います。上がこれを認めないなら、その案件は「できません」というのが本来正しい気がします。(同じような案件を、絶対不可能な政治的理由で新人だから人柱に受けさせられて、納期が倍以上伸びて吊るされた経験あり)

2)夜中にこっそり本番サーバーにシンプルなテストDBを作成して検証してみる

とりあえずオススメできません。

もしも例外的にこれをやってもいいような状況なのであれば、それも手かなとは思います。

3)ストアドプロシージャを使う

もっとも理想的な方法です。

ストアド+ODBCなら、コードからはストアド名と引数を投げてやるだけなので、クォーテーションを使う場所はないと思います。

id:MASHMASH

ありがとうございます。やはり私だけじゃなかったんですね

_| ̄|○ _| ̄|○ _| ̄|○  _| ̄|○

2005/06/18 01:19:17
id:Chaborin No.3

回答回数189ベストアンサー獲得回数7

ポイント20pt

http://support.microsoft.com/default.aspx?scid=kb;ja;JP409224

[VB4] RDO "SQLCLI 関数のシーケンスエラー" について

問題のエラーが「S1010(0)[Microsoft][ODBC Driver Manager] 関数シーケンス エラーです。」だとすれば、

ODBCそのものがエラーを出しているので、シングルクォートによって問題が発生するのは微妙に違うのではないかと思います。


URLに示したKBやらDB2のアドバイザリ(なんだかgoogleキャッシュしかヒットしません)を見るに、RDOを利用した時のトランザクション関係でこのエラーが発生するようです。

私はADOしか使ったことがないので確たることが言えないのが申し訳ないのですが、もしかして、同じコネクションオブジェクトを利用している前後で、トランザクション関係がこんがらがったりしていないでしょうか。

id:MASHMASH

トランザクションは、シンプルに済ませているはずなのですが・・・どうもぼんやりした感じです。

2005/06/18 03:22:13
id:medical_blog No.4

回答回数16ベストアンサー獲得回数0

ポイント20pt

http://www.microsoft.com/japan/msdn/data/download.asp

Universal Data Access 関連ダウンロード

MDACのバージョン違いはいろいろな不具合を発生し、古いバージョンは連続稼働時の安定性に大変不安定要因をもちます。もちろんセキュリィティ上もいろいろ言われています。


答えになってはいないと思いますが、MDACは常に気をつけていて新しい物を使うのがASP系開発の基本と思っております。

まづそちらの変更を検討されるのが、ベストだと考えます。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません