@@ -177,7 +177,8 @@ conn.query<ResultSetHeader>(sql, (_err, result) => {
177
177
insertId: 0,
178
178
info: '',
179
179
serverStatus: 2,
180
- warningStatus: 0
180
+ warningStatus: 0,
181
+ changedRows: 0
181
182
}
182
183
*/
183
184
});
@@ -212,23 +213,78 @@ conn.query<ResultSetHeader[]>(sql, (_err, results) => {
212
213
insertId: 0,
213
214
info: '',
214
215
serverStatus: 10,
215
- warningStatus: 0
216
+ warningStatus: 0,
217
+ changedRows: 0
216
218
},
217
219
ResultSetHeader {
218
220
fieldCount: 0,
219
221
affectedRows: 0,
220
222
insertId: 0,
221
223
info: '',
222
224
serverStatus: 2,
223
- warningStatus: 0
225
+ warningStatus: 0,
226
+ changedRows: 0
224
227
}
225
228
]
226
229
*/
227
230
});
228
231
```
229
232
233
+ ---
234
+
230
235
#### ProcedureCallPacket
231
- > In progress
236
+ By performing a ** Call Procedure** using ` INSERT ` , ` UPDATE ` , etc., the return will be a ` ProcedureCallPacket<ResultSetHeader> ` (even if you perform multiples queries and set ` multipleStatements ` to ` true ` ).
237
+
238
+ > For ` CREATE PROCEDURE ` and ` DROP PROCEDURE ` , these returns will be the * default* ` ResultSetHeader ` .
239
+
240
+ ``` ts
241
+ import mysql , { ProcedureCallPacket , ResultSetHeader } from ' mysql2' ;
242
+
243
+ const conn = mysql .createConnection ({
244
+ user: ' test' ,
245
+ database: ' test' ,
246
+ });
247
+
248
+ /** ResultSetHeader */
249
+ conn .query (' DROP PROCEDURE IF EXISTS myProcedure' );
250
+
251
+ /** ResultSetHeader */
252
+ conn .query (`
253
+ CREATE PROCEDURE myProcedure()
254
+ BEGIN
255
+ SET @1 = 1;
256
+ SET @2 = 2;
257
+ END
258
+ ` );
259
+
260
+ /** ProcedureCallPacket */
261
+ const sql = ' CALL myProcedure()' ;
262
+
263
+ conn .query <ProcedureCallPacket <ResultSetHeader >>(sql , (_err , result ) => {
264
+ console .log (result );
265
+ /**
266
+ * @result: ResultSetHeader {
267
+ fieldCount: 0,
268
+ affectedRows: 0,
269
+ insertId: 0,
270
+ info: '',
271
+ serverStatus: 2,
272
+ warningStatus: 0,
273
+ changedRows: 0
274
+ }
275
+ */
276
+ });
277
+ ```
278
+
279
+ By using ` SELECT ` and ` SHOW ` queries in a ** Procedure Call** , it groups the results as:
280
+ ``` tsx
281
+ // ProcedureCallPacket<RowDataPacket[]>
282
+ [... RowDataPacket [], ResultSetHeader ]
283
+
284
+ // ProcedureCallPacket<RowDataPacket[][]>
285
+ [... RowDataPacket [][], ResultSetHeader ]
286
+ ```
287
+ For ` ProcedureCallPacket<RowDataPacket[]> ` and ` ProcedureCallPacket<RowDataPacket[][]> ` , please see the following advanced examples.
232
288
233
289
---
234
290
0 commit comments