PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
24609 21/02/22 09:36:26 RE(12):PB12.6: MySQLへのINSERTができるようになった~その後~ By Wutian
24608 21/02/18 12:31:57 RE(11):PB12.6: MySQLへのINSERTができるようになった~その後~ By JBI
24607 21/02/17 13:53:20 RE(10):PB12.6: MySQLへのINSERTができるようになった~その後~ By Wutian
24606 21/02/17 12:42:31 RE(9):PB12.6: MySQLへのINSERTができるようになった~その後~ By JBI
24605 21/02/16 14:38:42 RE(8):PB12.6: MySQLへのINSERTができるようになった~その後~ By Wutian
24604 21/02/16 10:54:11 RE(7):PB12.6: MySQLへのINSERTができるようになった~その後~ By JBI
24603 21/02/15 11:56:22 RE(6):PB12.6: MySQLへのINSERTができない By JBI
24602 21/02/15 09:50:10 RE(5):PB12.6: MySQLへのINSERTができない By Wutian
24601 21/02/09 13:20:47 RE(5):PB12.6: MySQLへのINSERTができない By ハチ公
24600 21/02/09 11:55:12 RE(4):PB12.6: MySQLへのINSERTができない By JBI
24599 21/02/09 10:51:10 RE(3):PB12.6: MySQLへのINSERTができない By ハチ公
24598 21/02/08 11:27:32 RE(2):PB12.6: MySQLへのINSERTができない By JBI
24597 21/02/08 10:58:42 RE:PB12.6: MySQLへのINSERTができない By Lucky Rabbit
24596 21/02/03 11:53:25 PB12.6: MySQLへのINSERTができない By JBI

カテゴリ:PowerBuilderの開発環境
日付:2021年02月09日 13:20 発信者:ハチ公
題名:RE(5):PB12.6: MySQLへのINSERTができない

データウインドウの作成方法は、パワーフューチャーさんのチュートリアルを参考にされてはどうですか。
Webから申し込みできますよ。
データウインドウを用いたDB操作ができるかどうかを確認する必要があると思います。
画面に貼り付けたデータウインドウのイベントにSqlPreviewがあり、引数にあるSqlSyntaxを確認すると、
実行されているSQLが確認できます。
dw_1のSqlPreviewイベントに、MessageBox("",SqlSyntax)を記載し、
dw_1.InsertRow(0)
値の入力
dw_1.Update()
これで実行すると、データウインドウからDBに出しているSQL文が確認できます。
InsertRow()なので、INSERT文が確認できるはずです。
そのSQL文の内容が、埋め込みSQLで書かれている構成と同じかどうか、の確認です。

>ありがとうございます。

>仰る通り、埋め込みSQLで困っています。
>私はPowerBuilderはかなりの初心者で、前任者が今回のシステムを構築し、
>MySQLへのマイグレーションする部分からの引継ぎのため、
>データウインドウの作成等はまったくやり方がわかっていません。
>ですので、ご教授頂いたデータウインドウは作成できていません。

>前回の補足ですが、commit using sqlca;をexecute using sqlca;に変更すると
>エラーは出ますが、INSERTされました。
>しかし、変更したときの1回のみで、それ以降は何回やってもINSERTされません。
>この現象もよくわからず、どうしていいか途方に暮れています。
>何かヒントをお持ちでしたらご教授ください。
>よろしくお願いいたします。


>>おはようございます。
>>埋め込みSQLで起きている問題を解決できないようですね。
>>私も環境がないので検証できませんが、データウインドウを作成して、InsertRow,Updateできますでしょうか?
>>もし、これができるとした場合、データウインドウのSqlprevewイベントの引数をMessageBoxで表示して、流れているSQLを確認することができます。
>>
>>
>>>ありがとうございます。
>>>ご教示頂いた通りにリテラルで囲んでみましたが、結果は変わりませんでした。
>>>補足ですが、エラーメッセージがでる件は、
>>>commit using sqlca;をusing sqlca;に変更すると
>>>エラーは出なくなります。
>>>しかし、結果は変わらずINSERTされません。
>>>他に何か方法がありましたらご教授願います。
>>>よろしくお願いいたします。
>>>
>>>
>>>
>>>>こんにちは
>>>>MySQLの環境を持っていないのでわかりませんが、テーブル名とカラム名をリテラルで囲んでみてください。
>>>>DBプロファイルにあります、「構文」「リテラルで囲む」をチェックONし、DBParmも確認してDB接続してください。
>>>>DBごとに、大文字、小文字の扱いもあるようです。
>>>>以上、よろしくお願いいたします。
>>>>
>>>>>お世話になります。
>>>>>
>>>>>同じプログラムを色々なデータベースで処理できるようなシステムを作っています。
>>>>>これまではSQLServer、Oracleに接続、処理できるように作成しました。
>>>>>
>>>>>今回はその同じプログラムを使用して、MySQLをデータベースにしているのですが、
>>>>>SELECTはできるのですが、その他のINSERT、UPDATE、DELETEがうまくできません。
>>>>>
>>>>>うまくいかないINSERT処理の抜粋を記載します。
>>>>>
>>>>>datetime wlog_time
>>>>>wlog_time = datetime(today(),now())
>>>>>※:set_は他で取得できています。
>>>>>  INSERT INTO USYS_LOG (
>>>>>   USER_ID,
>>>>>   ACTION_MSG,
>>>>>   PGM_ID,
>>>>>   TABLE_ID,
>>>>>   LOG_TIME,
>>>>>   STATUS_MSG
>>>>>   )
>>>>>  VALUES (
>>>>>   :set_user_id,
>>>>>   :set_action_msg,
>>>>>   null,
>>>>>   null,
>>>>>   :wlog_time,
>>>>>   :set_status_msg
>>>>>   )
>>>>>   commit using sqlca;
>>>>>
>>>>>実行すると以下のエラーメッセージを取得しました。
>>>>>SQLDBCode=1064
>>>>>sqlstate=37000
>>>>>[MySQL][ODBC 8.0(w) Driver][mysqld-8.0.23]
>>>>>You have an error in your SQL syntax;
>>>>>check the manual that corresponds to your MySQL server version for the right syntax to use near 'commit' at line 1
>>>>>
>>>>>しかし、同じプログラムでデータベースをSQLServerに変更するとちゃんとINSERT処理されます。
>>>>>何がおかしいのか全くわからないので教えてください。
>>>>>よろしくお願いいたします。

付加情報:

PowerBuilder Version 12.6

Client SoftWare

OS Windows10
DBMS その他
Browser Chrome

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.