Sql2000、Json、delphiXE、Sqlite3数据库字段类型对照表[转]
(2023-12-19 11:10:48)
标签:
sqljsonsqlite3delphixe |
分类: 代码天地 |
Sql2000、Json、Sqlite3数据库字段类型对照表
Sql2000、Json、Sqlite3、delphiXE数据库类型对照表
一、对照表及重要说明
Sql2000
Json
delphiXE
Sqlite3
bigint
Int64
ftLargeint
BIGINT
binary
ByteString
ftBytes
BINARY
bit
Boolean
ftBoolean
BOOLEAN
在Sql2000中,bit
=1或0或null(默认0)。注意:bit的数值代表true(bit=1)或false(bit=0或null)。在Sqlite3中:用BOOLEAN代表,同样此时代表true或false。
代码使用时:if LFDMemT1.FieldByName('Z1111').AsBoolean=true then
Memo1.Lines.Add('Sql2000的bit值为0或null,sqlite3该列打勾');
LFDMemT1.FieldByName('Z1111').AsBoolean=false then
Memo1.Lines.Add('Sql2000的bit值为1,sqlite3该列没有打勾或去勾');
而其列的返回值不是-1就是0,取决于代表的表达方式:
LFDMemT1.FieldByName('Z1111').AsBoolean.ToString(false)=-1,代表:,
Bit为1(比特1)返回-1;Bit为0(比特0)返回-1;Bit为null(比特null)返回-1;LFDMemT1.FieldByName('Z1111').AsBoolean.ToString(true)=0
,代表:
Bit为1(比特1)返回0;Bit为0(比特0)返回0;Bit为null(比特null)返回0。它们是恒等式,代表该字段占一个比特位,无实际意义,只是对返回值的表达方式不同而已。
char
AnsiString
ftString
CHAR
datetime
DateTimeStamp
ftTimeStamp
DATETIME
decimal
BCD
ftFMTBcd
DECIMAL
//: 当decimal=null时,
DECIMAL=null, ftFMTBcd为''
:LFDMemT1.FieldByName('Z1111').AsString=''
float
Double
ftFloat
FLOAT
image
Blob
ftBlob
IMAGE
//:中间值转化::用流和内存流做转化
int
Int32
ftInteger
INT
money
Currency
ftCurrency
MONEY
(精度+小数 Json
"Precision":19,"Scale":4,)
nchar
WideString
ftWideString
NCHAR
ntext
WideMemo
ftWideMemo
NTEXT
numeric
BCD
ftFMTBcd
DECIMAL
//: NUMERIC当成:DECIMAL处理
nvarchar
WideString
ftWideString
NVARCHAR
real
Single
ftSingle
REAL
smalldatetime
DateTimeStamp
ftTimeStamp
TIMESTAMP
smallint
Int16
ftSmallint
SMALLINT
smallmoney
Currency
ftCurrency
SMALLMONEY
sql_variant
WideString
ftWideString
NVARCHAR2 // :
sql_variant类型在SQLServer中是特殊的数据类型,
也是变长的数据类型,包含两部分信息:基础类型和Value,可以存储所有的SQLServer数据类型的数据,引用时需转化:convert(
NVarchar( len([FieldName].Value) ) , [FieldName].Value )
text
Memo
ftMemo
TEXT
timestamp
ByteString
ftBytes
TIMESTAMP
tinyint
Byte
ftByte
INT(1) // :
sql2000中代表0~255的ASC码而非码值
uniqueidentifier
GUID
ftGuid
UNIQUEIDENTIFIER
varbinary
ByteString
ftVarBytes
VARBINARY
varchar
AnsiString
ftString
VARCHAR
二、数据库Sql2000及Sqlite3所有字段类型
Sql2000
bigint、binary、bit、char、datetime、decimal、float、image、int、
money、nchar、ntext、numeric、nvarchar、real、
smalldatetime、smallint、smallmoney、sql_variant、
text、timestamp、tinyint、uniqueidentifier、varbinary、varchar
Sqlite3
BIGINT、BINARY、BLOB、BLOB_TEXT、BOOL、BOOLEAN、
CHAR、CLOB、CURRENCY、
DATE、DATETEXT、DATETIME、DEC、DECIMAL、DOUBLE、DOUBLE
PRECISION、
FLOAT、GRAPHIC、GUID、
IMAGE、INT、INT64、INTEGER、LARGEINT、
MEMO、MONEY、
NCHAR、NVARCHAR、NVARCHAR2、NTEXT、NUMBER、NUMERIC、
PHOTO、PICTURE、RAW、
REAL、SMALLINT、SMALLMONEY、TEXT、TIME、TIMESTAMP、TINYINT、
UNIQUEIDENTIFIER、VARBINARY、VARCHAR、VARCHAR2、WORD
关于Sqlite3的数据类型,可参考以下两位作者的原创:
https://blog.csdn.net/wulianghuan/article/details/11197743
https://www.cnblogs.com/findumars/p/7854338.html
三、关于Sqlite3中的null
sqlite3只是一个嵌入式数据库引擎,占用资源非常底,可以适用于Windows和Linux,而且sqlite3只是一个文件,不需要服务器进程。
sqlite3 c++ api接口只需要引用sqlite3.h头文件就行。
常用术语:表(table)、字段(column,列,
前一篇:八款免费的思维导图软件【转】