哪位高手帮忙解决:ODBC存储数组进入mysql数据库。

linuxlsx linuxlsx 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想存储一个double数组进入Mysql数据库,希望详细告诉mysql中数据库用什么类型。以及对于的odbc代码如何编写,下面是基本类型double/int/char的存储,但double[31]如何实现存入数据库,并读取出来
SQLINTEGER cbValue = SQL_NTS;
RETCODE retcode;
char namebuf[32];
double price;
double density;
int pwnum;
char libnamebuf[32];
int category;

retcode=SQLBindParameter(m_dbconn.getStatmentHandle(),1,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,32,0,namebuf,strlen(namebuf),&cbValue);
retcode=SQLBindParameter(m_dbconn.getStatmentHandle(),2,SQL_PARAM_INPUT,SQL_C_DOUBLE,SQL_DOUBLE,0,0,&price,0,&cbValue);
retcode=SQLBindParameter(m_dbconn.getStatmentHandle(),3,SQL_PARAM_INPUT,SQL_C_DOUBLE,SQL_DOUBLE,0,0,&density,0,&cbValue);
retcode=SQLBindParameter(m_dbconn.getStatmentHandle(),4,SQL_PARAM_INPUT,SQL_C_SSHORT,SQL_INTEGER,0,0,&pwnum,0,&cbValue);
retcode=SQLBindParameter(m_dbconn.getStatmentHandle(),5,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,32,0,libnamebuf,strlen(libnamebuf),&cbValue);
retcode=SQLBindParameter(m_dbconn.getStatmentHandle(),6,SQL_PARAM_INPUT,SQL_C_SSHORT,SQL_INTEGER,0,0,&category,0,&cbValue);

retcode =SQLPrepare(m_dbconn.getStatmentHandle(),(SQLCHAR*)"insert into dope values(?,?,?,?,?,?)", SQL_NTS);

memcpy(namebuf,dope.name.c_str(),dope.name.size());
namebuf[dope.name.size()]='\0';
price=dope.price;
density=dope.density;
pwnum=dope.pwnum;
memcpy(libnamebuf,dope.libName.c_str(),dope.libName.size());
libnamebuf[dope.libName.size()]='\0';
category=dope.category;

retcode =SQLExecute(m_dbconn.getStatmentHandle());
if(retcode<0)
{
cout<<"insert errors"<<retcode<<endl;
//得到具体出错信息
SQLCHAR* pstate=new SQLCHAR[20];
SQLINTEGER * pnativeerro=new SQLINTEGER ;
SQLCHAR* erromsg=new SQLCHAR[1024];
SQLSMALLINT* smallint=new SQLSMALLINT;
SQLGetDiagRec(SQL_HANDLE_STMT,this->m_dbconn.getStatmentHandle(),1,pstate,pnativeerro,erromsg,1024,smallint);
cout<<"erro msg:"<<erromsg<<endl;
delete []pstate;
delete pnativeerro;
delete []erromsg;
delete smallint;
return false;
}
...全文

相关推荐

Qt利用ODBC连接MySQL数据库

在本文中,我们将深入探讨如何使用Qt框架通过ODBC(Open Database Connectivity)接口连接到MySQL数据库,以此构建一个教务管理系统。

BeinWong

C++中使用MySQL ODBC连接MySQL数据库的全面指南

MySQL作为全球最受欢迎的开源关系数据库管理系统之一,因其高性能、高可靠性和易用性而广受欢迎。本章将概述MySQL的发展历史、核心特点以及数据库架构的基础知识,为理解后续章节打下坚实基础。ODBC(Open Database Connectivity,开放数据库连接)是一种在不同数据库系统之间实现数据通信的标准应用程序编程接口(API)。它提供了一种与数据库进行交互的标准方法,使得开发者能够编写应用程序,这些程序可以与多种数据库进行通信,而不需要依赖于特定数据库的API。

古斯塔夫歼星炮

MySQL ODBC驱动简介

ODBC或MySQL连接器表示MySQLODBC驱动程序的集合。MySQLODBC驱动程序在早期被称为myODBC驱动程序。MySQLODBC驱动程序负责在开放式数据库连接API(ODBCAPI)的帮助下访问MySQL数据库。最新版本的ODBC即ODBC8.0带有Unicode和ANSI驱动程序。当我们使用MySQLODBC驱动程序时,我们可以使用基于驱动程序管理器的接口的本机接口连接到MySQL数据库。...

暮晓引流软件

MySQL ODBC 用C++连接MySQL数据库

MySQL ODBC(Open Database Connectivity)是连接MySQL数据库的一种标准接口,允许应用程序通过ODBC驱动程序与MySQL进行通信。

sharing2008

mySQL的ODBC驱动安装的步骤

ODBC(Open Database Connectivity)是一种标准的API,允许应用程序与各种数据库系统进行交互。

大船
评论 4
收藏 已收藏
分享
返回顶部
linuxlsx
MySQL 57,062 成员 56,759 内容