|
From: <sc...@de...> - 2002-07-05 13:54:14
|
Hello ,
I found a new problem when using VFP with "oversized" varchars. I
tried a
VARCHAR(8000) in a remoteview but the odbcjdbc tries to allocate
-2 bytes
of memory (0xfffffffe). The bug appears in OdbcStatement.cpp at
line 1157
...
case SQL_C_CHAR:
//Orig
// statement->setString (parameter,
(char*) binding-
>pointer);
// break;
//Suggested by CGA to handle situation where strings are NOT
null-terminated.
switch( *binding->indicatorPointer )
{
case SQL_NTS:
statement->setString (parameter, (char*)
binding->pointer ); break;
default:
statement->setString (parameter,
(char*)binding->pointer, *binding-
>indicatorPointer );
break;
}
####
continuing in Value.cpp line 176f:
##
void Value::setString(int length, const char * string, bool copy)
clear();
type = String;
copyFlag = copy;
data.string.length = length;
if (copy)
{
data.string.string = new char [length + 1];
memcpy (data.string.string, string, length);
data.string.string [length] = 0;
}
else
data.string.string = (char*) string;
}
length is -2 and the (char *)string point to "newercombackmem"
does anyone know, what to do ?
(in my VFP-remote-view this field is a "memo")
|