parent
ce04288d64
commit
61a50d9c8c
2 changed files with 29 additions and 9 deletions
|
|
@ -98,15 +98,18 @@ proc dbFormat(formatstr: SqlQuery, args: varargs[string]): string =
|
||||||
var a = 0
|
var a = 0
|
||||||
if args.len > 0 and not string(formatstr).contains("?"):
|
if args.len > 0 and not string(formatstr).contains("?"):
|
||||||
dbError("""parameter substitution expects "?" """)
|
dbError("""parameter substitution expects "?" """)
|
||||||
for c in items(string(formatstr)):
|
if args.len == 0:
|
||||||
if c == '?':
|
return string(formatstr)
|
||||||
if args[a] == nil:
|
else:
|
||||||
add(result, "NULL")
|
for c in items(string(formatstr)):
|
||||||
|
if c == '?':
|
||||||
|
if args[a] == nil:
|
||||||
|
add(result, "NULL")
|
||||||
|
else:
|
||||||
|
add(result, dbQuote(args[a]))
|
||||||
|
inc(a)
|
||||||
else:
|
else:
|
||||||
add(result, dbQuote(args[a]))
|
add(result, c)
|
||||||
inc(a)
|
|
||||||
else:
|
|
||||||
add(result, c)
|
|
||||||
|
|
||||||
proc tryExec*(db: DbConn, query: SqlQuery,
|
proc tryExec*(db: DbConn, query: SqlQuery,
|
||||||
args: varargs[string, `$`]): bool {.tags: [ReadDbEffect, WriteDbEffect].} =
|
args: varargs[string, `$`]): bool {.tags: [ReadDbEffect, WriteDbEffect].} =
|
||||||
|
|
|
||||||
|
|
@ -304,7 +304,24 @@ doAssert parseInt(dbCols[40].typ.name) > 0
|
||||||
doAssert dbCols[41].name == "range_col"
|
doAssert dbCols[41].name == "range_col"
|
||||||
doAssert dbCols[41].typ.kind == DbTypeKind.dbComposite
|
doAssert dbCols[41].typ.kind == DbTypeKind.dbComposite
|
||||||
doAssert dbCols[41].typ.name == "int4range"
|
doAssert dbCols[41].typ.name == "int4range"
|
||||||
|
|
||||||
|
# issue 6571
|
||||||
|
db.exec(sql"DROP TABLE IF EXISTS DICTIONARY")
|
||||||
|
db.exec(sql("""CREATE TABLE DICTIONARY(
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
entry VARCHAR(1000) NOT NULL,
|
||||||
|
definition VARCHAR(4000) NOT NULL
|
||||||
|
);"""))
|
||||||
|
var entry = "あっそ"
|
||||||
|
var definition = "(int) (See ああそうそう) oh, really (uninterested)/oh yeah?/hmmmmm"
|
||||||
|
discard db.getRow(
|
||||||
|
SqlQuery("INSERT INTO DICTIONARY(entry, definition) VALUES(\'$1\', \'$2\') RETURNING id" % [entry, definition]))
|
||||||
|
doAssert db.getValue(sql"SELECT definition FROM DICTIONARY WHERE entry = ?", entry) == definition
|
||||||
|
entry = "Format string entry"
|
||||||
|
definition = "Format string definition"
|
||||||
|
db.exec(sql"INSERT INTO DICTIONARY(entry, definition) VALUES (?, ?)", entry, definition)
|
||||||
|
doAssert db.getValue(sql"SELECT definition FROM DICTIONARY WHERE entry = ?", entry) == definition
|
||||||
|
|
||||||
echo("All tests succeeded!")
|
echo("All tests succeeded!")
|
||||||
|
|
||||||
db.close()
|
db.close()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue