mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 05:50:30 +00:00
committed by
Andreas Rumpf
parent
ce04288d64
commit
61a50d9c8c
@@ -98,15 +98,18 @@ proc dbFormat(formatstr: SqlQuery, args: varargs[string]): string =
|
||||
var a = 0
|
||||
if args.len > 0 and not string(formatstr).contains("?"):
|
||||
dbError("""parameter substitution expects "?" """)
|
||||
for c in items(string(formatstr)):
|
||||
if c == '?':
|
||||
if args[a] == nil:
|
||||
add(result, "NULL")
|
||||
if args.len == 0:
|
||||
return string(formatstr)
|
||||
else:
|
||||
for c in items(string(formatstr)):
|
||||
if c == '?':
|
||||
if args[a] == nil:
|
||||
add(result, "NULL")
|
||||
else:
|
||||
add(result, dbQuote(args[a]))
|
||||
inc(a)
|
||||
else:
|
||||
add(result, dbQuote(args[a]))
|
||||
inc(a)
|
||||
else:
|
||||
add(result, c)
|
||||
add(result, c)
|
||||
|
||||
proc tryExec*(db: DbConn, query: SqlQuery,
|
||||
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].typ.kind == DbTypeKind.dbComposite
|
||||
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!")
|
||||
|
||||
db.close()
|
||||
|
||||
Reference in New Issue
Block a user