• 締切済み

WindowsCEのSQL Compact開発で困っています。

はじめまして。 現在、WindowsCEでMS-SQL Compactにて開発を行っております。 以前開発したときには問題なかったのですが、 この度、不可解な現象が出て困っております。 1度目のSQLで SELECT COUNT(*) AS F_COUNT FROM T_MST WHERE F_CODE='4' を実行して、F_COUNTを取得しています。 その後、存在を確認して再度 SELECT * FROM T_MST WHERE F_CODE='4' として実行するのですが、 ネイティブ例外が発生してしまいます。 エラーの詳細には、sqlceqp35.dllで発生しているようなのですが…。 現在、八方手詰まりで非常に困っています。 同様の現象にて問題を回避した方ご教授の程よろしくお願いいたします。 開発言語:VisualStudio2008Professional

みんなの回答

  • kazu1973
  • ベストアンサー率40% (14/35)
回答No.1

具体的なエラーの内容(メッセージ本文、コード類、SQLの記述など)の提示がないなら、アドバイスのしようがありません。 なぜカウントの後に再度SELECTを行うのか意図も見えません。 補足お願いします。

関連するQ&A

  • JPQLとSQLの結果…。

    すいません、EJB初心者です。 現在仕事でEJBを利用したアプリケーションを開発しています。 JPQLを利用してクエリを投げた結果と、JPQLで投げた結果のログのSQLを利用して取得した結果が違うのですが、何かそういった現象に詳しい方いませんでしょうか? 以下が発行しているJPQLとログに流れるSQLです。 --JPQL SELECT COUNT(t) FROM table_A t WHERE t.columnA = '000000000000001' t.columnA NOT IN ('000000000000001') -- SQL SELECT COUNT(t.columnA) FROM table_A t WHERE t.columnA = '000000000000001' t.columnA NOT ('000000000000001') JPQLのほうは1件となり、SQLをコンソールで実行した結果は0件です。 期待する結果は0件です。 認識のある方、お力をお貸しいただけないでしょうか? お手数をおかけします。 宜しくお願いします。

  • SQL SERVER

    ORACLEの以下のようなテーブルの結合の構文を SQL SERVERでするとどのような構文になるのでしょうか? SELECT T1.T_CODE, T2.T_CODE, T2,F_NAME FROM TEST1 T1, TEST2 T2 WHERE T1.T_CODE = T2T_CODE(+)

  • 以下のSQL文を実行したのですが、MySQL server has g

    以下のSQL文を実行したのですが、MySQL server has gone awayというエラーが発生してしまいます。 さまざまなサイトを確認したのですが間違いが分からないため質問をさせていただきました。 よろしくお願いします。 SELECT * FROM t1 WHERE f1 = ANY (SELECT f1 FROM t2 WHERE group = '1'); (SELECT f1 FROM t2 WHERE group = '1')では30件程度が該当し、t1は5万行前後です。 MySQL クライアントのバージョン: 5.1.22-rc

  • SQL文の実行速度について

    こんにちは。SQLを勉強しています。 質問をさせてください。 Oracleテーブル(test_table:レコード数はかなりあると考えて構いません) にnumber(int),value(varchar), code(varchar)の3つのフィールドが存在 するとします。 今、codeを指定してvalueを取得したいと考えています。 (1)---------------------------- select value from test_table where code='001'; select value from test_table where code='002'; select value from test_table where code='003'; (2)---------------------------- select code, value from test_table where code='001' or code='002' or code='003' (1)と(2)ではどちらが実行速度が速いのでしょうか? 実際に実行すればわかることですが、そういった環境が ないので、確認できません。宜しくお願い致します。

  • ストアド内で実行したSQLの出力結果について

    現在、引数の値を元に下記のようなSQL文を生成しています。 SELECT code, name FROM T_CGY WHERE code = '1111' UNION SELECT code, name FROM T_CGY WHERE code = '1110' UNION SELECT code, name FROM T_CGY WHERE code = '1100' UNION SELECT code, name FROM T_CGY WHERE code = '1000' ORDER BY code; ※出力されたSQL文に誤りがないかを確認する為にコピーしてターミナル上で実行したら該当するレコードを取得する事ができました。 それをストアドプロシージャ内で生成したSQL文を「QUERY EXECUTE」を実行して該当するレコードが取得できるように改造してみました。 下記が出力された結果です。 getCgyData -------------------- (1000,洋服) (1100,子供服) (1110,ズボン) (1111,長ズボン) 出力されたデータは私が望んだ内容なんですが・・・ 私的には下記のように出力したいと考えています。 col1    | col2 ------------------------- 1000  | 洋服 1100  | 子供服 1110  | ズボン 1111  | 長ズボン 何とか上記のように出力できるようにするにはどうしたらいいでしょうしょうか。 そもそも上記のように出力する事は可能なのでしょうか。 CREATE FUNCTION getCgyData (VARCHAR) RETURNS TABLE(col1 VARCHAR, col2 VARCHAR) AS ' DECLARE key ALIAS FOR $1; sql TEXT; BEGIN                 ・                 ・ ※ここでSQL文を生成して、変数(sql)に格納しています。                 ・                 ・ RETURN QUERY EXECUTE sql; END; ' language 'plpgsql' ; データベースのバージョンはpostgreSQL8.4.9です。 再度、申し訳ありませんがアドバイス、宜しくお願いします。 では、失礼します。

  • SQL WHERE文のノットイコールについて

    初歩的な質問ですみません。 Oracle9iでsqlplusで接続しています。 「member_accountテーブルのdelete_flag(VARCHAR2)カラムの値が'1'ではない」ものを抽出したいと考えてます。 ただ、正しい結果が返ってきません。 何が問題でしょうか?よろしくお願いいたします。 ============================================================ SQL> select count(ID) from member_account; COUNT(ID) ---------- 16450 SQL> SQL> select count(ID) from member_account where delete_flag='1'; COUNT(ID) ---------- 107 SQL> SQL> select count(ID) from member_account where delete_flag<>'1'; COUNT(ID) ---------- 0 SQL> SQL> select count(ID) from member_account where delete_flag!='1'; COUNT(ID) ---------- 0 ============================================================ よろしくお願いいたします。

  • SQL文で質問があります。

    商品マスタがあり、データは下記の感じで登録されています。  コード | 商品名  | 商品カナ | 分類コード ・・・ ---------------------------------------------------------  0001  | マウス  | マウス  | 01     ・・・  0002  | キーボード| キーボード| 01     ・・・  0003  | モニター | モニター | 01     ・・・          ・          ・          ・ SQL文で質問があります。 下記のSQLでは取得できるんですが・・・ SELECT * FROM M_SHOHIN WHERE code = ANY('{0001,0002,0003}'); 下記のSQLを実行したらエラーが出力されました。 SELECT * FROM M_SHOHIN WHERE code = ANY(  SELECT ARRAY_AGG(code) AS code FROM M_SHOHIN WHERE class_code = '01' ); ERROR: operator does not exist: character varying = character varying[] HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. なので下記のようにCASTをするようにして実行したらエラーは出力されなくなりましたがデータの取得ができませんでした。 SELECT * FROM M_SHOHIN WHERE code = ANY(  SELECT CAST(ARRAY_AGG(code) AS VARCHAR) AS code  FROM M_SHOHIN WHERE class_code = '01' ); どのようにすれば取得できますでしょうか。 説明が下手で申し訳ありませんがアドバイスいただけませんでしょうか。 データベースはPostgreSQL 8.4.9です。 宜しくお願いします。

  • Access SQLを使ったソートがずれる

    Access2003で以下のfunctionを組みました。 ************************************* Dim SQL As String Dim strList As String SQL = "" strList = "" 'サブテーブルの削除 SQL = "DELETE * FROM SUB_T" CurrentProject.Connection.Execute SQL SQL = "INSERT INTO SUB_T SELECT Master_T.* FROM Master_T WHERE " With Forms!SEARCH! '検索条件がnullの場合 If IsNull(.CODE_SRH) Then SQL = "INSERT INTO SUB_T SELECT Master_T.* FROM Master_T" End If 'コードの条件 If .CODE_SRH <> "" Then strList = "Master_T.CODE Like '" & .CODE_SRH & "%'" End If End With SQL = SQL & strList & " ORDER BY (val(CODE))" CurrentProject.Connection.Execute SQL ************************************* Master_T テーブルの CODE は テキスト型 内容は以下のとおり "001","あいうえお",.... "003","さしすせそ",.... "002","かきくけこ",.... "013","GHI",.... "011","ABC",.... 検索条件Nullの場合SUB_T テーブルには "001","あいうえお",.... "002","かきくけこ",.... "003","さしすせそ",.... "011","ABC",.... "013","GHI",.... とインサートされるはずですが、何回か実行すると・・・・ "003","さしすせそ",.... "011","ABC",.... "013","GHI",.... "001","あいうえお",.... "002","かきくけこ",.... こんなだったり "011","ABC",.... "013","GHI",.... "001","あいうえお",.... "002","かきくけこ",.... "003","さしすせそ",.... このような感じに並びます。 試しに、明示的に"ORDER BY (val(CODE)) ASC"にしても また降順ではどうかと思い、"ORDER BY (val(CODE)) DESC"にしても 同じ現象が出ます。 コードの条件を入れても同様な現象が出ます。 何が原因なのかさっぱり分かりません。 Accessのどこかを確認すべきか、VBAを見直すべきなのか ご教授いただきたいです。

  • WITH句を使用したSQLの結果

    WITH句を使用して総件数と1~20件までのデータを同時に取得するSQLを組んでみたところ、 WITH TMP AS (SELECT ROW_NUMBER() OVER (ORDER BY NO) AS CHECKROWNUM,NAME FROM TEST_TBL ORDER BY NO) SELECT T1.ALLCNT, T2.* FROM (SELECT COUNT(*) ALLCNT FROM TMP) T1, TMP T2 WHERE T2.CHECKROWNUM BETWEEN 1 AND 20; Oracle10.2.0.3.0のバージョンで ALLCNTが21になってしまう現象が発生してしまいました。 Oracle10.2.0.4.0や9iでは発生せず正しい総件数が取得できるのですが、 バージョンによる不具合は考えられますでしょうか。 それともSQL自体なにか悪い部分があるのでしょうか。 ちなみに T2.CHECKROWNUM BETWEEN 1 AND 100; と帰るとALLCNTが101と帰ってきます。 また、WITH句を使わず下記のようにTMPの部分をWITH句で使用したSQLに 置き換えると正しくALLCNTが取れます。 SELECT T1.ALLCNT, T2.* FROM (SELECT COUNT(*) ALLCNT FROM (SELECT ROW_NUMBER() OVER (ORDER BY NO) AS CHECKROWNUM,NAME FROM TEST_TBL ORDER BY NO)) T1, (SELECT ROW_NUMBER() OVER (ORDER BY NO) AS CHECKROWNUM,NAME FROM TEST_TBL ORDER BY NO) T2 WHERE T2.CHECKROWNUM BETWEEN 1 AND 20;

  • sedに関する質問

    ★以下のファイルがあるとします。 SQL> select count(*) from koumoku where no = 1052 and mid =2; COUNT(*) ---------- 7 SQL> select count(*) from koumoku where no = 1053 and mid =3; COUNT(*) ---------- 4 SQL> select count(*) from setumei where no = 1054 and mid =2; COUNT(*) ---------- 9 SQL> select count(*) from setumei where no = 1055 and mid =7; COUNT(*) ---------- 5 SQL> select count(*) from imi where no = 1056 and mid =2; COUNT(*) ---------- 9 SQL> select count(*) from imi where no = 1057 and mid =6; COUNT(*) ---------- 3 ★ここでsedコマンドを利用して、 koumoku COUNT(*) ---------- 7 koumoku COUNT(*) ---------- 4 setumei COUNT(*) ---------- 9 setumei COUNT(*) ---------- 5 imi COUNT(*) ---------- 9 imi COUNT(*) ---------- 3 のように取り出したいのですが、方法が分からないので、 誰か教えてもらえますか?宜しくお願いします。