mysql c api 急!

凡迪 2011-11-04 10:54:50
如何用mysql_fetch_field()取出查询语句中的值和类型?
例如:
mysql_query(mysql,"select name,age from stu_table");
result = mysql_use_result(mysql);
while(field=mysql_fetch_field(result))
{
这里该怎么写?
}

由于是初学,不对的地方望指教!
...全文
72 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yynetsdk 2011-11-04
  • 打赏
  • 举报
回复
yymysqlsdk ,下载这个
lanneret1234 2011-11-04
  • 打赏
  • 举报
回复

vector<vector<string> > mv_resultList

MYSQL_RES *lv_res;
MYSQL_ROW lv_row;

unsigned int lv_Row = 0;

// 执行查询
if (mysql_real_query(&mv_mySQLClient, t_StrSql.c_str(),
(unsigned int) strlen(t_StrSql.c_str())))
{
cout << "Error query from database: %s\n" << mysql_error(
&mv_mySQLClient) << endl;
return false;
}

if ((lv_res = mysql_store_result(&mv_mySQLClient)) == NULL)
{
return true;
}
vector<string> lv_objectValue;

while ((lv_row = mysql_fetch_row(lv_res)))
{
// 遍历结果集
lv_objectValue.clear();
for (lv_Row = 0; lv_Row < mysql_num_fields(lv_res); lv_Row++)
{
lv_objectValue.push_back(lv_row[lv_Row]);
}
this ->mv_resultList.push_back(lv_objectValue);
}

mysql_free_result(lv_res); //free result after you get the result
hzy694358 2011-11-04
  • 打赏
  • 举报
回复
sprintf(sql, "select name,age from stu_table");

if (mysql_real_query(&mysql, sql, strlen(sql)))
{
throw mysql_errno(&mysql);
}
if ((pRecord = mysql_store_result(&mysql)) == NULL)
{
throw mysql_errno(&mysql);
}
while((row = mysql_fetch_row(pRecord)) !=NULL)//读取返回集
{
row[0] //name
row[1] //age
}
qq120848369 2011-11-04
  • 打赏
  • 举报
回复
mysql_fetch_field()

返回下一个表字段的类型。

mysql_fetch_field_direct()

给定字段编号,返回表字段的类型。

mysql_fetch_fields()

返回所有字段结构的数组。

mysql_fetch_lengths()

返回当前行中所有列的长度。

mysql_fetch_row()

从结果集中获取下一行

mysql_field_seek()

将列光标置于指定的列。

mysql_field_count()

返回上次执行语句的结果列的数目。

mysql_field_tell()

返回上次mysql_fetch_field()所使用字段光标的位置。

mysql_free_result()

释放结果集使用的内存。



http://dev.mysql.com/doc/refman/5.1/zh/apis.html#c

中文官方文档你摆着不看。
hzy694358 2011-11-04
  • 打赏
  • 举报
回复
sprintf(sql, "select name,age from stu_table");

if (mysql_real_query(&mysql, sql, strlen(sql)))
{
throw mysql_errno(&mysql);
}

if ((pRecord = mysql_store_result(&mysql)) == NULL)
{
throw mysql_errno(&mysql);
}

while((row = mysql_fetch_row(pRecord)) !=NULL)//读取返回集
凡迪 2011-11-04
  • 打赏
  • 举报
回复
不一定非要使用mysql_fetch_field(),只要能够取出select语句中的值和该值的类型就ok了
zjjfish 2011-11-04
  • 打赏
  • 举报
回复

MYSQL *mysql = NULL;
mysql = mysql_init(mysql);
int i = 0;

MYSQL_RES *res;
MYSQL_ROW record;
CStringArray* arrayStr;
arrayStr = new CStringArray[5000];

mysql_real_connect(mysql,"192.168.8.32","mars","123456","lich",3306,NULL,NULL);
CString sql_str = "select l_test_case.nID,l_test_case.strName,l_test_case.strCommand,l_test_case_status.strStatus_Name from l_test_case left join l_test_case_status on l_test_case.nStatus = l_test_case_status.nID left join l_testplan on l_test_case.nTest_Plan_Id=l_testplan.nID where l_test_case.bDelete=0 and l_test_case.bTest=0 and";
int cnt = ((CListBox*)GetDlgItem(IDC_LST_RMV))->GetCount();
if(cnt != 0)
{
for(int i = 0; i < cnt ;i++)
{
CString plan ;
if (i == 0)
{
((CListBox*)GetDlgItem(IDC_LST_RMV))->GetText(i,plan);

sql_str += " (l_testplan.strName ='";
sql_str += plan;
sql_str += "'";
}
else
{
((CListBox*)GetDlgItem(IDC_LST_RMV))->GetText(i,plan);
sql_str += " or l_testplan.strName ='";
sql_str += plan;
sql_str += "'";
}
}
sql_str += ")";
sql_str += " order by l_test_case.nID";
}
else
{
sql_str = "select l_test_case.nID,l_test_case.strName,l_test_case.strCommand,l_test_case_status.strStatus_Name from l_test_case left join l_test_case_status on l_test_case.nStatus = l_test_case_status.nID left join l_testplan on l_test_case.nTest_Plan_Id=l_testplan.nID where l_test_case.bDelete=0 and l_test_case.bTest=0 ";
}

mysql_query(mysql,sql_str);
res = mysql_store_result(mysql);
while((record=mysql_fetch_row(res)))
{
arrayStr[i].Add(record[0]);
arrayStr[i].Add(record[1]);
arrayStr[i].Add(record[2]);
arrayStr[i].Add(record[3]);
i++;
}
qq120848369 2011-11-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yzg001212 的回复:]

我执行field=mysql_fetch_field(result);语句后
field->type代表的就是我选择列的数据类型吗?
[/Quote]

人家不喂到你口里,你就饿死了。
凡迪 2011-11-04
  • 打赏
  • 举报
回复
我执行field=mysql_fetch_field(result);语句后
field->type代表的就是我选择列的数据类型吗?

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧