Common datatypes and definitions for all db_*.nim ( db_mysql, db_postgres, and db_sqlite) modules.
Types
DbError = object of IOError
- exception that is raised if a database error occurs Source Edit
SqlQuery = distinct string
- an SQL query string Source Edit
DbEffect = object of IOEffect
- effect that denotes a database operation Source Edit
ReadDbEffect = object of DbEffect
- effect that denotes a read operation Source Edit
WriteDbEffect = object of DbEffect
- effect that denotes a write operation Source Edit
DbTypeKind = enum dbUnknown, dbSerial, dbNull, dbBit, dbBool, dbBlob, dbFixedChar, dbVarchar, dbJson, dbXml, dbInt, dbUInt, dbDecimal, dbFloat, dbDate, dbTime, dbDatetime, dbTimestamp, dbTimeInterval, dbEnum, dbSet, dbArray, dbComposite, dbUrl, dbUuid, dbInet, dbMacAddress, dbGeometry, dbPoint, dbLine, dbLseg, dbBox, dbPath, dbPolygon, dbCircle, dbUser1, dbUser2, dbUser3, dbUser4, dbUser5
- a superset of datatypes that might be supported. Source Edit
DbType = object kind*: DbTypeKind ## the kind of the described type notNull*: bool ## does the type contain NULL? name*: string ## the name of the type size*: Natural ## the size of the datatype; 0 if of variable size maxReprLen*: Natural ## maximal length required for the representation precision*, scale*: Natural ## precision and scale of the number min*, max*: BiggestInt ## the minimum and maximum of allowed values validValues*: seq[string] ## valid values of an enum or a set
- describes a database type Source Edit
DbColumn = object name*: string ## name of the column tableName*: string ## name of the table the column belongs to (optional) typ*: DbType ## type of the column primaryKey*: bool ## is this a primary key? foreignKey*: bool ## is this a foreign key?
- information about a database column Source Edit
DbColumns = seq[DbColumn]
- Source Edit
Templates
template sql(query: string): SqlQuery
-
constructs a SqlQuery from the string query. This is supposed to be used as a raw-string-literal modifier: sql"update user set counter = counter + 1"
If assertions are turned off, it does nothing. If assertions are turned on, later versions will check the string for valid syntax.
Source Edit