用vc 怎么在mysql 新建一个表,表名是任意一个字符串变量?

菜鸟,随便写一个字符串然后放到string 型变量m_database里面,然后在mysql里面建表的时候调用这个变量,看见网上有段建表的代码
  sqlstr ="CREATE TABLE IF NOT EXISTS user_info";
sqlstr+="(";
sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
sqlstr+="user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
sqlstr+=");";

user_info 是表的名字,现在把他用 m_database 代替但是建不出表
  sqlstr ="CREATE TABLE IF NOT EXISTS m_database ";

那应该怎么改呢?

作者: yxdzcc   发布时间: 2011-05-31

m_database是变量?
 sqlstr ="CREATE TABLE IF NOT EXISTS "+m_database;
 sqlstr+="(";
 sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
 sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
 sqlstr+="user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
 sqlstr+=");";

作者: WWWWA   发布时间: 2011-05-31

谢谢楼上,现在可以了。
还有个问题,上面的代码在新建的表里分别建了3列user_id,user_name,user_second_sum,我想把其中的一列函数类型变为float型怎么改代码呢

作者: yxdzcc   发布时间: 2011-05-31

其实我就是想建几个float型的列,怎么写呢?

作者: yxdzcc   发布时间: 2011-05-31

alter table tt modify user_second_sum float

作者: WWWWA   发布时间: 2011-05-31

引用 3 楼 yxdzcc 的回复:
其实我就是想建几个float型的列,怎么写呢?

create table tt(t1 float,t2 float)

作者: WWWWA   发布时间: 2011-05-31

代码中的m_database是别的头文件中的变量,建了个dlg的对象
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database;这段代码可以实现建表
如果在建几个float型的列,写成下面这样?
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database(t1 float,t2 float);
我试了下,好像不对。

作者: yxdzcc   发布时间: 2011-05-31

引用 6 楼 yxdzcc 的回复:
代码中的m_database是别的头文件中的变量,建了个dlg的对象
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database;这段代码可以实现建表
如果在建几个float型的列,写成下面这样?
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database(t1 float,t2 float);
我……

sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database+"(t1 float,t2 float)";

作者: WWWWA   发布时间: 2011-05-31

sqlstr ="CREATE TABLE IF NOT EXISTS " + m_database;
sqlstr+="(";
sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
sqlstr+="user_second_sum float NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
sqlstr+=");";

作者: ACMAIN_CHM   发布时间: 2011-05-31

引用 7 楼 wwwwa 的回复:
引用 6 楼 yxdzcc 的回复:
代码中的m_database是别的头文件中的变量,建了个dlg的对象
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database;这段代码可以实现建表
如果在建几个float型的列,写成下面这样?
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database(t1……


大侠,单纯写这么一句
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database+"(t1 float,t2 float)";
建表失败,我把后面那段改成
  sqlstr+="(";
sqlstr+="t1 FLOAT UNSIGNED NOT NULL ',";
sqlstr+="t2 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t3 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t4 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t5 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t6 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t7 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t8 FLOAT UNSIGNED NOT NULL ,";
sqlstr+="t9 FLOAT UNSIGNED NOT NULL ";
sqlstr+=");";
也不行。
现在可以确认
sqlstr ="CREATE TABLE IF NOT EXISTS "+dlg.m_database;
sqlstr+="(";
 sqlstr+="user_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'Unique User ID',";
 sqlstr+="user_name VARCHAR(100) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci NULL COMMENT 'Name Of User',";
 sqlstr+="user_second_sum INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 'The Summation Of Using Time'";
 sqlstr+=");";
可以成功建表。

作者: yxdzcc   发布时间: 2011-05-31