1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

strnto family functions now return error in a new argument

This commit is contained in:
bar@bar.mysql.r18.ru
2003-01-16 17:17:07 +04:00
parent 4a77f335f4
commit 4f9d82700d
14 changed files with 166 additions and 125 deletions

View File

@ -4522,41 +4522,42 @@ static void send_data_double(MYSQL_BIND *param, double value)
static void send_data_str(MYSQL_BIND *param, char *value, uint length)
{
char *buffer= param->buffer;
int err=0;
switch(param->buffer_type) {
case MYSQL_TYPE_TINY:
{
uchar data= (uchar)my_strntol(system_charset_info,value,length,NULL,10);
uchar data= (uchar)my_strntol(system_charset_info,value,length,10,NULL,&err);
*buffer= data;
break;
}
case MYSQL_TYPE_SHORT:
{
short data= (short)my_strntol(system_charset_info,value,length,NULL,10);
short data= (short)my_strntol(system_charset_info,value,length,10,NULL,&err);
int2store(buffer, data);
break;
}
case MYSQL_TYPE_LONG:
{
int32 data= (int32)my_strntol(system_charset_info,value,length,NULL,10);
int32 data= (int32)my_strntol(system_charset_info,value,length,10,NULL,&err);
int4store(buffer, data);
break;
}
case MYSQL_TYPE_LONGLONG:
{
longlong data= my_strntoll(system_charset_info,value,length,NULL,10);
longlong data= my_strntoll(system_charset_info,value,length,10,NULL,&err);
int8store(buffer, data);
break;
}
case MYSQL_TYPE_FLOAT:
{
float data = (float)my_strntod(system_charset_info,value,length,NULL);
float data = (float)my_strntod(system_charset_info,value,length,NULL,&err);
float4store(buffer, data);
break;
}
case MYSQL_TYPE_DOUBLE:
{
double data= my_strntod(system_charset_info,value,length,NULL);
double data= my_strntod(system_charset_info,value,length,NULL,&err);
float8store(buffer, data);
break;
}