2016-05-19 6 views
0

を返します。呼び出すストアドプロシージャは、以下のように私はLuaのでストアドプロシージャを呼び出しています不完全な結果

res, err, errno, sqlstate = db:query("call icenter.queryUserOTHistorySessionRB(4780,'2016-03-01 00:00:00','2016-04-30 23:59:59');"); 

それは単一のレコードを返します。

[{"LogoffTime":"2016-04-14 07:30:00","user_id":4780,"resource_id":1335,"ResourceName":"WTH5401171","InuseTime":54000,"IdleTime":0,"LogonTime":"2016-04-13 16:30:00"}] 

しかし、ときに私は同じプロシージャを呼び出します

result

:MySQLの navicatに、私は2つのレコードを取得します

アイデア?

+0

残念ですが何が問題なのですか?どのような結果が完了していないのですか?何が欠けている?そして、あなたがnavicatを使うときの違いは何ですか? –

+0

actully、欠落しているデータは最初のものですが、この手続きをluaスクリプトで呼び出すと、データレコードは1つしかありませんが、Navicatで同じレコードを呼び出すと2つのレコードがあります。 –

+2

結果セットをlua(または他のプログラミング言語)で反復処理する必要があります。 – hjpotter92

答えて

0

あなたはLuaSQLを使用していると仮定します。残念ながら、LuaSQLはストアドプロシージャ呼び出しのサポートを保証していません。それはあなたが使用するドライバに依存します。

MySQLドライバでは、ストアドプロシージャの複数の結果をフェッチする機能はありません。

私はこの問題を作成しましたhttps://github.com/keplerproject/luasql/issues/47

関連する問題