相关类部分代码2:
switch (nType)
{
case FIELD_TYPE_TINY:
{
mI64Val = pszValue ? atol(pszValue) : 0 ;
memcpy( &m_arrRowBuff[m_nBuffBegin], &mI64Val, 1 );
m_nBuffBegin += 1 ;
}
break ;
case FIELD_TYPE_SHORT:
{
mI64Val = pszValue ? atol(pszValue) : 0 ;
memcpy( &m_arrRowBuff[m_nBuffBegin], &mI64Val, 2 );
m_nBuffBegin += 2 ;
}
break ;
case FIELD_TYPE_LONG:
{
mI64Val = pszValue ? atol(pszValue) : 0 ;
memcpy( &m_arrRowBuff[m_nBuffBegin], &mI64Val, 4 );
m_nBuffBegin += 4 ;
}
break ;
case FIELD_TYPE_FLOAT:
{
mF64Val = pszValue ? atof(pszValue) : 0 ;
memcpy( &m_arrRowBuff[m_nBuffBegin], &mF64Val, 4 );
m_nBuffBegin += 4 ;
}
break ;
case FIELD_TYPE_LONGLONG:
{
mI64Val = pszValue ? atol(pszValue) : 0 ;
memcpy( &m_arrRowBuff[m_nBuffBegin], &mI64Val, 8 );
m_nBuffBegin += 8 ;
}
break ;
case FIELD_TYPE_DOUBLE:
{
mF64Val = pszValue ? atof(pszValue) : 0 ;
memcpy( &m_arrRowBuff[m_nBuffBegin], &mF64Val, 8 );
m_nBuffBegin += 8 ;
}
break ;
case FIELD_TYPE_STRING: // char
case FIELD_TYPE_VAR_STRING: // var_char
{
memcpy( &m_arrRowBuff[m_nBuffBegin], pszValue, nLen / 3 ); // mysql char 定义大小会按最大长底去计算长度,这里限制按字节大小去截断
m_nBuffBegin += nLen / 3 ;
}
break ;
case MYSQL_TYPE_TINY_BLOB:
case MYSQL_TYPE_MEDIUM_BLOB:
case MYSQL_TYPE_LONG_BLOB:
case MYSQL_TYPE_BLOB:
{
memcpy( & m_arrRowBuff[m_nBuffBegin], pszValue, nLen);
m_nBuffBegin += nLen;
}
break ;
目前这个DyNetMysql.dll还不完善,如果是直接select 则可以创建结构体与它对应则可直接转结构体,如果是其它如update,delete乖等,则建议设置不使用回调或使用存储过程。
测试代码中也用到了最近封装一个异步Socket的dll,如果大家感兴趣, 请留言和推荐吧 ,我才会有动力跟园友一起分享!如果有问题,可以留言或qq296464231问我
项目源码下载
分享封装好的异步Mysql动态的库(DyNetMysql.dll) + 项目源码
标签:
查看更多关于分享封装好的异步Mysql动态的库(DyNetMysql.dll) + 项目源码的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did118586