|
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")
|
|
From: Carlos G. Á. <car...@ho...> - 2002-07-05 14:56:59
|
Hola:
The -2 value is SQL_NEED_DATA this indicate that the data for the field
would be obtained at execution.
The CVS sources of the driver don´t manage data at exec parameters when the
parameter is a SQL_LONGVARCHAR field, i send some changes for solove this
issue to Paul Reeves ( and to the list ) with new implementation for
SQLPutData and SQLParamData.
Best regards
Carlos Guzman Álvarez
<sc...@de...> escribió en el mensaje
news:3D25C182.31816.5AB804@localhost...
> 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")
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Bringing you mounds of caffeinated joy.
> http://thinkgeek.com/sf
> _______________________________________________
> Firebird-odbc-devel mailing list
> Fir...@li...
> https://lists.sourceforge.net/lists/listinfo/firebird-odbc-devel
>
|
|
From: Carlos G. Á. <car...@ho...> - 2002-07-05 15:06:29
|
Hello:
Sorry, -2 is SQL_DATA_AT_EXEC jeje
Best regards
Carlos Guzman Alvarez
Vigo-España
""Carlos Guzman Alvarez"" <car...@ho...> escribió en el mensaje
news:ag3ub7$llm$1...@ne......
> Hola:
>
> The -2 value is SQL_NEED_DATA this indicate that the data for the field
> would be obtained at execution.
> The CVS sources of the driver don4t manage data at exec parameters when
the
> parameter is a SQL_LONGVARCHAR field, i send some changes for solove this
> issue to Paul Reeves ( and to the list ) with new implementation for
> SQLPutData and SQLParamData.
>
>
>
> Best regards
> Carlos Guzman Alvarez
>
>
> <sc...@de...> escribis en el mensaje
> news:3D25C182.31816.5AB804@localhost...
> > 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")
> >
> >
> > -------------------------------------------------------
> > This sf.net email is sponsored by:ThinkGeek
> > Bringing you mounds of caffeinated joy.
> > http://thinkgeek.com/sf
> > _______________________________________________
> > Firebird-odbc-devel mailing list
> > Fir...@li...
> > https://lists.sourceforge.net/lists/listinfo/firebird-odbc-devel
> >
>
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Bringing you mounds of caffeinated joy.
> http://thinkgeek.com/sf
> _______________________________________________
> Firebird-odbc-devel mailing list
> Fir...@li...
> https://lists.sourceforge.net/lists/listinfo/firebird-odbc-devel
>
|