人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: MASHMASH
●カテゴリ:ウェブ制作
✍キーワード:ASP ODBC SE SQL エラー
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● tailliar
●20ポイント

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

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

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


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

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

◎質問者からの返答

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


2 ● tailliar
●20ポイント

私もASP.NET+SqlServerでした。

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

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

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

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

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

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

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

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

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

◎質問者からの返答

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

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


3 ● ちゃぼりん
●20ポイント

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

http://64.233.187.104/search?q=cache:Dt0uhUpmI8QJ:www.db2.jp/db2...

◎質問者からの返答

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


4 ● medical_blog
●20ポイント

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

Universal Data Access 関連ダウンロード

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


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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ