Hi!
I'm converting some DBF table to SQLServer. When there is an empty date value, the following code throws an error "type conflict: text is not compatible with date".
How can I pass empty date values to SQLServer?
FUNCTION dtosSQL( dDate AS USUAL ) AS STRING
LOCAL cDate AS STRING
IF IsString(dDate) .OR. dDate = NULL_DATE
cDate := [null]
ELSE
cDate := ['] + Stuff(Stuff(DToS(dDate),5,0,[-]),8,0,[-]) + ['] // 20071201 return "2007-12-01"
ENDIF
//
RETURN cDate
Hi!
I'm converting some DBF table to SQLServer. When there is an empty date value, the following code throws an error "type conflict: text is not compatible with date".
How can I pass empty date values to SQLServer?
Thanks!!
****************
aParametros := ArrayCreate(2)
oCmd:CommandText := "INSERT INTO [Ark].[dbo].[Cliente] ( [Ark].[dbo].[Cliente].[Codigo], [Ark].[dbo].[Cliente].[Fecha] ) VALUES (?,?)"
sCliente:GoTop()
WHILE !sCliente:EoF
aParametros[ 1] := sCliente:FIELDGET( #CODIGO )
aParametros[ 2] := sCliente:FIELDGET( #FECHA )
//
oCmd:Execute(@uResult,aParametros,NIL)
IF uResult != 1
MostrarError( oCmd:Error:description )
BREAK
ENDIF
sCliente:Skip()
ENDDO
In your app, try calling
AdoConvertNullStringToNull ( TRUE )
P.S. I don't use the Vo2Ado, but I looked at the documentation. Source:
FUNCTION AdoConvertNullStringToNull ( lSet ) AS
Argument(s)
lSet When TRUE, NULL_STRINGS will be converted to NULL, else an Empty
value is passed to COM. The default behaviour is NOT to convert them to NULL
Return
The process of converting NULL_STRINGS can be switched ON/OFF by calling
the AdoCheckNullString function
See Also
Support functions, AdoCheckNullString, Data Types
HTH,
Jamal
On 5/19/2021 8:40 AM, Carlos Vazquez wrote:
Hi!
I'm converting some DBF table to SQLServer. When there is an empty date value, the following code throws an error "type conflict: text is not compatible with date".
How can I pass empty date values to SQLServer?
Thanks!!
****************
aParametros := ArrayCreate(2)
oCmd:CommandText := "INSERT INTO [Ark].[dbo].[Cliente] ( [Ark].[dbo].[Cliente].[Codigo], [Ark].[dbo].[Cliente].[Fecha] ) VALUES (?,?)"
sCliente:GoTop()
WHILE !sCliente:EoF
aParametros[ 1] := sCliente:FIELDGET( #CODIGO )
aParametros[ 2] := sCliente:FIELDGET( #FECHA )
//
oCmd:Execute(@uResult,aParametros,NIL)
IF uResult != 1
MostrarError( oCmd:Error:description )
BREAK
ENDIF
sCliente:Skip()
ENDDO
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 294 |
Nodes: | 16 (2 / 14) |
Uptime: | 247:34:02 |
Calls: | 6,626 |
Calls today: | 2 |
Files: | 12,175 |
Messages: | 5,320,897 |