ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

Insert文で列が2重に発行される

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 | 投稿日時 2010-9-14 18:58
takahashi  半人前   投稿数: 38
何度も何度も恐縮です...

現在開発中のjBOLTで色々なデータ操作をSQLで行っているのですが
何点かエラーとなっているうちの一つについて質問です。

実行するとモニタにSQL文のエラーテキストが排出されますが、その内容が

エラーテキストの内容↓
Insert into
[D_伝票番号管理]
(D_伝票番号管理.日付,D_伝票番号管理.伝票番号,D_伝票番号管理.日付,D_伝票番号管理.伝票番号)
values (20100915, 0,20100915, 0)

エラーのコピー&ペースト↓
2010/09/14 17:16:05:796, エラー 9804: SERVER02 : 結果の列リスト内に、列名 '日付' が複数存在します。
insert:(フロー:伝票管理番号作成)


上記のように、列が2重になってしまいます。データマップのSQLを何度みても1つしか定義しておりません。
フローを削除して新たに作り直してもダメでした。何が起きているのか検討がつかない状態です。ご存知の方がいらっしゃいましたらご教授のほどよろしくお願いいたします。

【補足:その他のエラー】
他にもSQLエラーで不可解な現象があります。
例えば WHERE句の前に「,」(カンマ)が勝手に付くとか...
これに関してはまた、新規に投稿しようと思っております。

V3.0SP1d Expedition
SQLserver2005
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-14 19:04
Jiro123  長老   投稿数: 271
エラーのSQLは、そのままクエリできるものではないようです。

どのようなクエリを発行しているのかを確認するのに利用する程度であって、クエリを実行するものではないと思っています。

実際、エラーのSQLをクエリ実行してもエラーになりますし。

実際にSQLServerが受け取ったクエリを確認するには、SQLServerのProfilerを利用するのが一番です。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-15 9:29
takahashi  半人前   投稿数: 38
Profilerを確認してみたのですが、受け取ったクエリがjBOLTが発行している?エラーのクエリなので内容が理解できませんでした。
認識不足かもしれません....

もうちょっと検証してみます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-15 11:09
yoshi  半人前   投稿数: 33
こんにちは。

DataMapperのSQL文に改行とか、長い空白が入っていると正常にSQLが生成されないことがありました。

もし、SQL文を手修正されているならば、そういった部分も確認されたほうが良いと思います。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2010-9-15 14:03
takahashi  半人前   投稿数: 38
yoshiさん

SQL文を見やすいように改行やら空白やら修正しまくっていました。
自動生成されたSQL文そのままでやってみます。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約