C++ 如何利用变量生成动态sql

迷途滴羔羊 2011-12-30 04:16:37
char* cintxt=getreader(); //从这个函数中拿到一个字符串

if (!mysql_query(con1, "SELECT * FROM cintxt")) //将这个字符串放到这个sql的表名这里。

请问 怎么样才可用让这个sql识别我的这个变量为一个正常的字符串,

试了几种方法了结果都还不行。(尝试过 :cintxt , CString.Format("SELECT * FROM '%s'",cintex)

急求决绝方案啊。


...全文
230 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
turing-complete 2011-12-30
  • 打赏
  • 举报
回复
对着你的项目点击右键,依次选择:属性、配置属性、常规,然后右边有个“项目默认值”,下面有个MFC的使用,选择“在共享 DLL 中使用 MFC”
迷途滴羔羊 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 mougaidong 的回复:]

引用 18 楼 gaoyi88 的回复:

引用 16 楼 mougaidong 的回复:

引用 15 楼 gaoyi88 的回复:

引用 11 楼 mougaidong 的回复:

C/C++ code

#include <iostream>
#include <afx.h>


int main(int argc, char* argv[])
{
CSt……
[/Quote]小弟新手,对UUnicode表示不懂,请多多包涵。
迷途滴羔羊 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 dahuaixiaohuai 的回复:]

引用 14 楼 gaoyi88 的回复:
引用 12 楼 dahuaixiaohuai 的回复:

#include "stdio.h"
#include "afx.h"

int main(int argc, char* argv[])
{
char *cintxt="table_user";
CString sql;
sql.Format("SELECT * FROM %……
[/Quote]那应该如何设成成多线程模式呢? 百度都找不到,我的IDE是 VS2008,小弟新手不太懂这个。
turing-complete 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 gaoyi88 的回复:]

引用 16 楼 mougaidong 的回复:

引用 15 楼 gaoyi88 的回复:

引用 11 楼 mougaidong 的回复:

C/C++ code

#include <iostream>
#include <afx.h>


int main(int argc, char* argv[])
{
CString result_str;

CStr……
[/Quote]

项目属性有问题,可能使用了Unicode
一叶之舟 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 gaoyi88 的回复:]
引用 12 楼 dahuaixiaohuai 的回复:

#include "stdio.h"
#include "afx.h"

int main(int argc, char* argv[])
{
char *cintxt="table_user";
CString sql;
sql.Format("SELECT * FROM %s", cintxt);
printf("%……
[/Quote]
这就是一个简单的win32控制台程序。
如果有链接错误要设置成多线程模式。
迷途滴羔羊 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 mougaidong 的回复:]

引用 15 楼 gaoyi88 的回复:

引用 11 楼 mougaidong 的回复:

C/C++ code

#include <iostream>
#include <afx.h>


int main(int argc, char* argv[])
{
CString result_str;

CString cintxt("tb_test");

r……
[/Quote]苍天啊,跟你的一样,fatal error C1189: #error :错误。奇怪啊
楚天乐 2011-12-30
  • 打赏
  • 举报
回复
C标准库的sprintf就可以啊

如果是MFC的话 CString的format就可以
turing-complete 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 gaoyi88 的回复:]

引用 11 楼 mougaidong 的回复:

C/C++ code

#include <iostream>
#include <afx.h>


int main(int argc, char* argv[])
{
CString result_str;

CString cintxt("tb_test");

result_str.Format("SELECT……
[/Quote]

在下用的也是win32,IDE是VS2008
迷途滴羔羊 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 mougaidong 的回复:]

C/C++ code

#include <iostream>
#include <afx.h>


int main(int argc, char* argv[])
{
CString result_str;

CString cintxt("tb_test");

result_str.Format("SELECT * FROM %s", cintxt);

……
[/Quote]我用win32应用程序 然后跑你的这个程序,跑不起来哦。
迷途滴羔羊 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 dahuaixiaohuai 的回复:]

#include "stdio.h"
#include "afx.h"

int main(int argc, char* argv[])
{
char *cintxt="table_user";
CString sql;
sql.Format("SELECT * FROM %s", cintxt);
printf("%s\r\n",sql.GetBuffer(0));
ret……
[/Quote]

我用win32应用程序 然后跑你的这个程序,跑不起来哦。
turing-complete 2011-12-30
  • 打赏
  • 举报
回复
不加.h的头文件都是标准库的头文件,不属于MFC的,以后可以记住了。
一叶之舟 2011-12-30
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "afx.h"

int main(int argc, char* argv[])
{
char *cintxt="table_user";
CString sql;
sql.Format("SELECT * FROM %s", cintxt);
printf("%s\r\n",sql.GetBuffer(0));
return 0;
}
turing-complete 2011-12-30
  • 打赏
  • 举报
回复

#include <iostream>
#include <afx.h>


int main(int argc, char* argv[])
{
CString result_str;

CString cintxt("tb_test");

result_str.Format("SELECT * FROM %s", cintxt);

std::cout << result_str << std::endl;

return 0;
}
迷途滴羔羊 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 dahuaixiaohuai 的回复:]

char *contxt="table_user";
CString sql;
sql.Format("SELECT * FROM %s", cintxt)

sql的内容就是:
SELECT * FROM table_user
[/Quote]

我在win32里面写的,CString 我引用的是 #include <string>
#include <cstring>,但是好像不认识CString,
一叶之舟 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 gaoyi88 的回复:]
引用 3 楼 mougaidong 的回复:

你的写法不对吧,贴出来看看



if (!mysql_query(con1, CString.Format("SELECT * FROM %s",cintxt))){
res = mysql_store_result(con1);

我是这样写的啊,但是报错。
百度查了
[/Quote]

char *contxt="table_user";
CString sql;
sql.Format("SELECT * FROM %s", cintxt);
if (!mysql_query(con1, sql.GetBuffer(0))){
res = mysql_store_result(con1);
这样写才可以,
CSring是类型,不是变量。
一叶之舟 2011-12-30
  • 打赏
  • 举报
回复
或者
char *contxt="table_user";
char sql[1024]={0};
sprintf(sql,"SELECT * FROM %s", cintxt);

sql的内容就是:
SELECT * FROM table_user
迷途滴羔羊 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mougaidong 的回复:]

你的写法不对吧,贴出来看看
[/Quote]


if (!mysql_query(con1, CString.Format("SELECT * FROM %s",cintxt))){
res = mysql_store_result(con1);

我是这样写的啊,但是报错。
百度查了
一叶之舟 2011-12-30
  • 打赏
  • 举报
回复
char *contxt="table_user";
CString sql;
sql.Format("SELECT * FROM %s", cintxt)

sql的内容就是:
SELECT * FROM table_user
yujie_v 2011-12-30
  • 打赏
  • 举报
回复
你可以用c的sprintf或者C++的字符串流
yujie_v 2011-12-30
  • 打赏
  • 举报
回复
CString是MFC里面的。你的引用最好在MFC里面用
加载更多回复(3)

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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