Mercurial > gemma
comparison pkg/imports/bn.go @ 3164:1de0764f6af4
Use context for preparation of transaction-specific statements
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Mon, 06 May 2019 13:33:19 +0200 |
parents | b3c3c5b5b7c1 |
children | 4acbee65275d |
comparison
equal
deleted
inserted
replaced
3163:d9903cb34842 | 3164:1de0764f6af4 |
---|---|
255 return err | 255 return err |
256 } | 256 } |
257 defer tx.Rollback() | 257 defer tx.Rollback() |
258 | 258 |
259 var found bool | 259 var found bool |
260 err = tx.Stmt(hasStmt).QueryRowContext(ctx, bn.Bottleneck_id).Scan(&found) | 260 err = tx.StmtContext(ctx, hasStmt).QueryRowContext(ctx, |
261 bn.Bottleneck_id).Scan(&found) | |
261 switch { | 262 switch { |
262 case err == sql.ErrNoRows: | 263 case err == sql.ErrNoRows: |
263 // This is good. | 264 // This is good. |
264 case err != nil: | 265 case err != nil: |
265 return err | 266 return err |
281 country = string(*bn.Responsible_country) | 282 country = string(*bn.Responsible_country) |
282 } | 283 } |
283 | 284 |
284 var nid int64 | 285 var nid int64 |
285 | 286 |
286 err = tx.Stmt(insertStmt).QueryRowContext( | 287 err = tx.StmtContext(ctx, insertStmt).QueryRowContext( |
287 ctx, | 288 ctx, |
288 bn.Bottleneck_id, | 289 bn.Bottleneck_id, |
289 bn.Fk_g_fid, | 290 bn.Fk_g_fid, |
290 bn.OBJNAM, | 291 bn.OBJNAM, |
291 bn.NOBJNM, | 292 bn.NOBJNM, |
307 | 308 |
308 if bn.Riverbed != nil { | 309 if bn.Riverbed != nil { |
309 for _, material := range bn.Riverbed.Material { | 310 for _, material := range bn.Riverbed.Material { |
310 if material != nil { | 311 if material != nil { |
311 mat := string(*material) | 312 mat := string(*material) |
312 if _, err := tx.Stmt(insertMaterialStmt).ExecContext( | 313 if _, err := tx.StmtContext(ctx, |
314 insertMaterialStmt).ExecContext( | |
313 ctx, nid, material); err != nil { | 315 ctx, nid, material); err != nil { |
314 feedback.Warn( | 316 feedback.Warn( |
315 "Failed to insert riverbed material '%s' for bottleneck '%s'.", | 317 "Failed to insert riverbed material '%s' for bottleneck '%s'.", |
316 mat, bn.OBJNAM) | 318 mat, bn.OBJNAM) |
317 feedback.Warn(handleError(err).Error()) | 319 feedback.Warn(handleError(err).Error()) |
318 } | 320 } |
319 } | 321 } |
320 } | 322 } |
321 } | 323 } |
322 | 324 |
323 if _, err := tx.Stmt(trackStmt).ExecContext( | 325 if _, err := tx.StmtContext(ctx, trackStmt).ExecContext( |
324 ctx, importID, "waterway.bottlenecks", nid, | 326 ctx, importID, "waterway.bottlenecks", nid, |
325 ); err != nil { | 327 ); err != nil { |
326 return err | 328 return err |
327 } | 329 } |
328 if err = tx.Commit(); err != nil { | 330 if err = tx.Commit(); err != nil { |