C# Firebird 2.5 sql错误代码=-104。无效令牌
我请求并得到一个错误 无效令牌。动态SQL错误。SQL错误代码=-104。令牌未知 -第1行,第66列。日期 所有字段都工作,没有日期C# Firebird 2.5 sql错误代码=-104。无效令牌,c#,firebird,C#,Firebird,我请求并得到一个错误 无效令牌。动态SQL错误。SQL错误代码=-104。令牌未知 -第1行,第66列。日期 所有字段都工作,没有日期 INSERT INTO BASE(ID,INV_NUM,PRODUCER_TYPE,PRODUCER_COUNTRY,MODEL,DATE,DEVICE_TYPE,NAME,SURNAME,MIDDLE,DOB) VALUES(1,112,'D-Link','China','AP','12.10.2004','Asd','Wood','Ivanov','Midd
INSERT INTO BASE(ID,INV_NUM,PRODUCER_TYPE,PRODUCER_COUNTRY,MODEL,DATE,DEVICE_TYPE,NAME,SURNAME,MIDDLE,DOB) VALUES(1,112,'D-Link','China','AP','12.10.2004','Asd','Wood','Ivanov','Middle','07.01.2014')
始终对日期使用Date()
。。。2014年1月7日使用此2014-01-07
INSERT INTO BASE(ID,INV_NUM,PRODUCER_TYPE,PRODUCER_COUNTRY,MODEL,DATE,DEVICE_TYPE,NAME,SURNAME,MIDDLE,DOB) VALUES(1,112,'D-Link','China','AP','2004-10-12','Asd','Wood','Ivanov','Middle','2014-01-07')
单词
DATE
是一个保留字(在标准SQL和Firebird中)。您需要引用它,才能将其用作查询中的列(或其他对象)
因此,将其更改为:
INSERT INTO BASE(..., MODEL, "DATE", DEVICE_TYPE,...) ...
对于日期,不应使用
CHAR
类型,而应使用DATE
类型。更好的方法是使用ISO-8601格式(yyyy-MM-dd),即2014-01-07,但这不是错误的原因。
INSERT INTO BASE(..., MODEL, "DATE", DEVICE_TYPE,...) ...