Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Softvelocity ODBC驱动程序上未找到所需的词法元素_C#_Odbc_Clarion - Fatal编程技术网

C# 在Softvelocity ODBC驱动程序上未找到所需的词法元素

C# 在Softvelocity ODBC驱动程序上未找到所需的词法元素,c#,odbc,clarion,C#,Odbc,Clarion,我有一个带有SQL的C#程序,看起来像这样: INSERT INTO PDRIVERP (POLICY ,DRIVERNO ,POINTRECNO ,DRIVERPOINTS ,POINTDESCRIPTION ,DATEOFVIOLATION ,ADDOPERATOR ,DATEADDED ,TIMEADDED ) VALUES ( ,0 ,1 ,37 ,2 ,'my desc' ,'75000' ,'

我有一个带有SQL的C#程序,看起来像这样:

INSERT INTO PDRIVERP
(POLICY
,DRIVERNO
,POINTRECNO
,DRIVERPOINTS
,POINTDESCRIPTION
,DATEOFVIOLATION
,ADDOPERATOR
,DATEADDED
,TIMEADDED
) VALUES (
,0             
,1            
,37       
,2            
,'my desc'  
,'75000'
,'34'
,{d '2020-07-29'}
,0
)
PDRIVERPOINTS       FILE,DRIVER('TOPSPEED'),NAME(SourceName),RECLAIM,PRE(IN)
POLDRIVERKEY          KEY(+IN:POLICY,+IN:DRIVERNO,+IN:POINTRECNO),OPT,NOCASE
POINTDESCRIPTIONKEY   KEY(+IN:POINTDESCRIPTION),DUP,OPT,NOCASE
DRIVERPOINTSKEY       KEY(+IN:DRIVERPOINTS),DUP,OPT,NOCASE
ADDEDBYKEY            KEY(+IN:ADDOPERATOR,+IN:DATEADDED,+IN:TIMEADDED),DUP,OPT,NOCASE
DATEADDEDKEY          KEY(+IN:DATEADDED,+IN:TIMEADDED,+IN:ADDOPERATOR),DUP,OPT,NOCASE
UPDATEDBYKEY          KEY(+IN:UPDATEOPERATOR,+IN:DATEUPDATED,+IN:TIMEUPDATED),DUP,OPT,NOCASE
DATEUPDATEDKEY        KEY(+IN:DATEUPDATED,+IN:TIMEUPDATED,+IN:UPDATEOPERATOR),DUP,OPT,NOCASE
RECKEY                KEY(+IN:RECNO),OPT,NOCASE
REMARKS               MEMO(1000)
RECORD                RECORD
POLICY                  DECIMAL(13,0)
DRIVERNO                DECIMAL(3,0)
POINTRECNO              DECIMAL(3,0)
DRIVERPOINTS            DECIMAL(3,0)
POINTDESCRIPTION        STRING(80)
DATEOFVIOLATION         STRING(8)
ADDOPERATOR             STRING(15)
DATEADDED               DATE
TIMEADDED               TIME
UPDATEOPERATOR          STRING(15)
DATEUPDATED             DATE
TIMEUPDATED             TIME
RECNO                   DECIMAL(13,0)
CLEAR(cDRP:Record)
cDRP:REMARKS = IN:REMARKS
cDRP:POLICY = IN:POLICY
cDRP:DRIVERNO = IN:DRIVERNO
cDRP:POINTRECNO = IN:POINTRECNO
cDRP:DRIVERPOINTS = IN:DRIVERPOINTS
cDRP:POINTDESCRIPTION = IN:POINTDESCRIPTION
cDRP:DATEOFVIOLATION = FORMAT(IN:DATEOFVIOLATION,@D2)
cDRP:ADDOPERATOR = IN:ADDOPERATOR
cDRP:DATEADDED = FORMAT(IN:DATEADDED,@D2)
cDRP:TIMEADDED = FORMAT(IN:TIMEADDED,@T1)
cDRP:UPDATEOPERATOR = IN:UPDATEOPERATOR
cDRP:DATEUPDATED = FORMAT(IN:DATEUPDATED,@D2)
cDRP:TIMEUPDATED = FORMAT(IN:TIMEUPDATED,@T1)
cDRP:RECNO = IN:RECNO
我有一个如下所示的表定义:

INSERT INTO PDRIVERP
(POLICY
,DRIVERNO
,POINTRECNO
,DRIVERPOINTS
,POINTDESCRIPTION
,DATEOFVIOLATION
,ADDOPERATOR
,DATEADDED
,TIMEADDED
) VALUES (
,0             
,1            
,37       
,2            
,'my desc'  
,'75000'
,'34'
,{d '2020-07-29'}
,0
)
PDRIVERPOINTS       FILE,DRIVER('TOPSPEED'),NAME(SourceName),RECLAIM,PRE(IN)
POLDRIVERKEY          KEY(+IN:POLICY,+IN:DRIVERNO,+IN:POINTRECNO),OPT,NOCASE
POINTDESCRIPTIONKEY   KEY(+IN:POINTDESCRIPTION),DUP,OPT,NOCASE
DRIVERPOINTSKEY       KEY(+IN:DRIVERPOINTS),DUP,OPT,NOCASE
ADDEDBYKEY            KEY(+IN:ADDOPERATOR,+IN:DATEADDED,+IN:TIMEADDED),DUP,OPT,NOCASE
DATEADDEDKEY          KEY(+IN:DATEADDED,+IN:TIMEADDED,+IN:ADDOPERATOR),DUP,OPT,NOCASE
UPDATEDBYKEY          KEY(+IN:UPDATEOPERATOR,+IN:DATEUPDATED,+IN:TIMEUPDATED),DUP,OPT,NOCASE
DATEUPDATEDKEY        KEY(+IN:DATEUPDATED,+IN:TIMEUPDATED,+IN:UPDATEOPERATOR),DUP,OPT,NOCASE
RECKEY                KEY(+IN:RECNO),OPT,NOCASE
REMARKS               MEMO(1000)
RECORD                RECORD
POLICY                  DECIMAL(13,0)
DRIVERNO                DECIMAL(3,0)
POINTRECNO              DECIMAL(3,0)
DRIVERPOINTS            DECIMAL(3,0)
POINTDESCRIPTION        STRING(80)
DATEOFVIOLATION         STRING(8)
ADDOPERATOR             STRING(15)
DATEADDED               DATE
TIMEADDED               TIME
UPDATEOPERATOR          STRING(15)
DATEUPDATED             DATE
TIMEUPDATED             TIME
RECNO                   DECIMAL(13,0)
CLEAR(cDRP:Record)
cDRP:REMARKS = IN:REMARKS
cDRP:POLICY = IN:POLICY
cDRP:DRIVERNO = IN:DRIVERNO
cDRP:POINTRECNO = IN:POINTRECNO
cDRP:DRIVERPOINTS = IN:DRIVERPOINTS
cDRP:POINTDESCRIPTION = IN:POINTDESCRIPTION
cDRP:DATEOFVIOLATION = FORMAT(IN:DATEOFVIOLATION,@D2)
cDRP:ADDOPERATOR = IN:ADDOPERATOR
cDRP:DATEADDED = FORMAT(IN:DATEADDED,@D2)
cDRP:TIMEADDED = FORMAT(IN:TIMEADDED,@T1)
cDRP:UPDATEOPERATOR = IN:UPDATEOPERATOR
cDRP:DATEUPDATED = FORMAT(IN:DATEUPDATED,@D2)
cDRP:TIMEUPDATED = FORMAT(IN:TIMEUPDATED,@T1)
cDRP:RECNO = IN:RECNO
我还看到这样一个定义:

INSERT INTO PDRIVERP
(POLICY
,DRIVERNO
,POINTRECNO
,DRIVERPOINTS
,POINTDESCRIPTION
,DATEOFVIOLATION
,ADDOPERATOR
,DATEADDED
,TIMEADDED
) VALUES (
,0             
,1            
,37       
,2            
,'my desc'  
,'75000'
,'34'
,{d '2020-07-29'}
,0
)
PDRIVERPOINTS       FILE,DRIVER('TOPSPEED'),NAME(SourceName),RECLAIM,PRE(IN)
POLDRIVERKEY          KEY(+IN:POLICY,+IN:DRIVERNO,+IN:POINTRECNO),OPT,NOCASE
POINTDESCRIPTIONKEY   KEY(+IN:POINTDESCRIPTION),DUP,OPT,NOCASE
DRIVERPOINTSKEY       KEY(+IN:DRIVERPOINTS),DUP,OPT,NOCASE
ADDEDBYKEY            KEY(+IN:ADDOPERATOR,+IN:DATEADDED,+IN:TIMEADDED),DUP,OPT,NOCASE
DATEADDEDKEY          KEY(+IN:DATEADDED,+IN:TIMEADDED,+IN:ADDOPERATOR),DUP,OPT,NOCASE
UPDATEDBYKEY          KEY(+IN:UPDATEOPERATOR,+IN:DATEUPDATED,+IN:TIMEUPDATED),DUP,OPT,NOCASE
DATEUPDATEDKEY        KEY(+IN:DATEUPDATED,+IN:TIMEUPDATED,+IN:UPDATEOPERATOR),DUP,OPT,NOCASE
RECKEY                KEY(+IN:RECNO),OPT,NOCASE
REMARKS               MEMO(1000)
RECORD                RECORD
POLICY                  DECIMAL(13,0)
DRIVERNO                DECIMAL(3,0)
POINTRECNO              DECIMAL(3,0)
DRIVERPOINTS            DECIMAL(3,0)
POINTDESCRIPTION        STRING(80)
DATEOFVIOLATION         STRING(8)
ADDOPERATOR             STRING(15)
DATEADDED               DATE
TIMEADDED               TIME
UPDATEOPERATOR          STRING(15)
DATEUPDATED             DATE
TIMEUPDATED             TIME
RECNO                   DECIMAL(13,0)
CLEAR(cDRP:Record)
cDRP:REMARKS = IN:REMARKS
cDRP:POLICY = IN:POLICY
cDRP:DRIVERNO = IN:DRIVERNO
cDRP:POINTRECNO = IN:POINTRECNO
cDRP:DRIVERPOINTS = IN:DRIVERPOINTS
cDRP:POINTDESCRIPTION = IN:POINTDESCRIPTION
cDRP:DATEOFVIOLATION = FORMAT(IN:DATEOFVIOLATION,@D2)
cDRP:ADDOPERATOR = IN:ADDOPERATOR
cDRP:DATEADDED = FORMAT(IN:DATEADDED,@D2)
cDRP:TIMEADDED = FORMAT(IN:TIMEADDED,@T1)
cDRP:UPDATEOPERATOR = IN:UPDATEOPERATOR
cDRP:DATEUPDATED = FORMAT(IN:DATEUPDATED,@D2)
cDRP:TIMEUPDATED = FORMAT(IN:TIMEUPDATED,@T1)
cDRP:RECNO = IN:RECNO
我得到这个错误:

ERROR [42000] [SoftVelocity Inc.][TopSpeed ODBC Driver]Expected lexical element not found: <identifier>
错误[42000][SoftVelocity Inc.][TopSpeed ODBC驱动程序]未找到预期的词法元素:
读取的某些示例数据如下所示:

INSERT INTO PDRIVERP
(POLICY
,DRIVERNO
,POINTRECNO
,DRIVERPOINTS
,POINTDESCRIPTION
,DATEOFVIOLATION
,ADDOPERATOR
,DATEADDED
,TIMEADDED
) VALUES (
,0             
,1            
,37       
,2            
,'my desc'  
,'75000'
,'34'
,{d '2020-07-29'}
,0
)
PDRIVERPOINTS       FILE,DRIVER('TOPSPEED'),NAME(SourceName),RECLAIM,PRE(IN)
POLDRIVERKEY          KEY(+IN:POLICY,+IN:DRIVERNO,+IN:POINTRECNO),OPT,NOCASE
POINTDESCRIPTIONKEY   KEY(+IN:POINTDESCRIPTION),DUP,OPT,NOCASE
DRIVERPOINTSKEY       KEY(+IN:DRIVERPOINTS),DUP,OPT,NOCASE
ADDEDBYKEY            KEY(+IN:ADDOPERATOR,+IN:DATEADDED,+IN:TIMEADDED),DUP,OPT,NOCASE
DATEADDEDKEY          KEY(+IN:DATEADDED,+IN:TIMEADDED,+IN:ADDOPERATOR),DUP,OPT,NOCASE
UPDATEDBYKEY          KEY(+IN:UPDATEOPERATOR,+IN:DATEUPDATED,+IN:TIMEUPDATED),DUP,OPT,NOCASE
DATEUPDATEDKEY        KEY(+IN:DATEUPDATED,+IN:TIMEUPDATED,+IN:UPDATEOPERATOR),DUP,OPT,NOCASE
RECKEY                KEY(+IN:RECNO),OPT,NOCASE
REMARKS               MEMO(1000)
RECORD                RECORD
POLICY                  DECIMAL(13,0)
DRIVERNO                DECIMAL(3,0)
POINTRECNO              DECIMAL(3,0)
DRIVERPOINTS            DECIMAL(3,0)
POINTDESCRIPTION        STRING(80)
DATEOFVIOLATION         STRING(8)
ADDOPERATOR             STRING(15)
DATEADDED               DATE
TIMEADDED               TIME
UPDATEOPERATOR          STRING(15)
DATEUPDATED             DATE
TIMEUPDATED             TIME
RECNO                   DECIMAL(13,0)
CLEAR(cDRP:Record)
cDRP:REMARKS = IN:REMARKS
cDRP:POLICY = IN:POLICY
cDRP:DRIVERNO = IN:DRIVERNO
cDRP:POINTRECNO = IN:POINTRECNO
cDRP:DRIVERPOINTS = IN:DRIVERPOINTS
cDRP:POINTDESCRIPTION = IN:POINTDESCRIPTION
cDRP:DATEOFVIOLATION = FORMAT(IN:DATEOFVIOLATION,@D2)
cDRP:ADDOPERATOR = IN:ADDOPERATOR
cDRP:DATEADDED = FORMAT(IN:DATEADDED,@D2)
cDRP:TIMEADDED = FORMAT(IN:TIMEADDED,@T1)
cDRP:UPDATEOPERATOR = IN:UPDATEOPERATOR
cDRP:DATEUPDATED = FORMAT(IN:DATEUPDATED,@D2)
cDRP:TIMEUPDATED = FORMAT(IN:TIMEUPDATED,@T1)
cDRP:RECNO = IN:RECNO

请注意表中DATEOFVIOLATION和DateAdd之间的不一致性。显示是不同的,所以我尝试以字符串形式插入,但我突然想到应该尝试以日期形式插入

我的sql有什么问题

是什么解释了DATEOFVIOLATION和DATEADDED在Softvelocity数据库扫描程序中显示的不同


如何从ODBC中获得更好的错误消息。也许有什么东西告诉我哪个字段被破坏了,或者字符串中有许多字符导致了语法错误?

Clarion日期被存储为long(INT)。75000是一个有效的号角日期。我不知道为什么该列被标记为字符串,但使用“75000”应该可以。在dateofviolation中,topscan中的日期显示为75000,因为它被定义为字符串,或者因为图片未格式化(您可以在topscan菜单上更改)

我怀疑插入错误来自DateAdded列。我已经十多年没有使用过TopspeedODBC驱动程序了(尽管我怀疑它没有改变)。我不记得驱动程序是否支持,{d'2020-07-29'}作为一个值。我想如果你有这些文件,就会告诉你

我会先尝试将dateadded列去掉,看看插入是否有效。使用相同的技术找出导致插入失败的原因,然后您就可以从那里回到家了

此外,re:timeadded,0在号角中表示“没有时间”。1=午夜。尽管如此,该字段中的间隔为100意味着1秒,之后很容易计算


顺便说一句,在Skype和Clarion NNTP新闻组(news.softvelocity.com-您需要softvelocity提供的凭据)中,Clarion的总体资源最好。

DATEOFVIOLATION需要愚蠢的{d'yyyy-MM-dd'}语法。欢迎使用topspeed:)我想知道您打开的时间问题是否也有类似的怪癖。