select * into from 语句的问题
编译环境是vs2010我已经在stdafx.h#import"C:/ProgramFiles/CommonFiles/system/ado/msadox.dll"#imp...
编译环境是 vs2010
我已经在stdafx.h
#import "C:/Program Files/Common Files/system/ado/msadox.dll"
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
我自己网上看资料,写了一段程序,目的就是把一个表的字段,复制到另一个新建的表,程序如下:
void DataDiscretize::OnBnClickedButtonSaveresult()
{
// TODO: 在此添加控件通知处理程序代码
// 新表 命名为DiscretizeResult;
CString TarTableName =(CString)"DiscretizeResult";
CString DBName="Provider=Microsoft.JET.OLEDB.4.0;Data source=ExpertDB.mdb";
SaveResult(DBName,m_sSampleTableName,TarTableName);
}
void DataDiscretize::SaveResult(CString DBName,CString OriTable,CString TargetTable)// 把选择的表的结构信息复制到目标表里面,首先要创建目标表;
{
/*******************************
*******************************/
_ConnectionPtr m_pConnection;
_variant_t RecordsAffected;
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open(_bstr_t(DBName),"","",adModeUnknown);
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format("连接数据库失败!/r错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);
return;
}
CString TableName;
TableName = (CString)"select * from" + OriTable;// 从数据库中找到名为oriTable的表;
//char *p = (LPSTR)(LPCTSTR)TableName;
//linkdb(p);//这句是判断是否连接成功;
select * into TargetTable from TableName where 1>2 ;//只复制结构和字段 TableName 是自动新建的表名
}
错误提示如下:
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2065: “into”: 未声明的标识符
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2146: 语法错误: 缺少“;”(在标识符“TargetTable”的前面)
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2146: 语法错误: 缺少“;”(在标识符“from”的前面)
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2065: “from”: 未声明的标识符
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2146: 语法错误: 缺少“;”(在标识符“TableName”的前面)
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2146: 语法错误: 缺少“;”(在标识符“where”的前面)
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2065: “where”: 未声明的标识符
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2143: 语法错误 : 缺少“;”(在“常量”的前面) 展开
我已经在stdafx.h
#import "C:/Program Files/Common Files/system/ado/msadox.dll"
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
我自己网上看资料,写了一段程序,目的就是把一个表的字段,复制到另一个新建的表,程序如下:
void DataDiscretize::OnBnClickedButtonSaveresult()
{
// TODO: 在此添加控件通知处理程序代码
// 新表 命名为DiscretizeResult;
CString TarTableName =(CString)"DiscretizeResult";
CString DBName="Provider=Microsoft.JET.OLEDB.4.0;Data source=ExpertDB.mdb";
SaveResult(DBName,m_sSampleTableName,TarTableName);
}
void DataDiscretize::SaveResult(CString DBName,CString OriTable,CString TargetTable)// 把选择的表的结构信息复制到目标表里面,首先要创建目标表;
{
/*******************************
*******************************/
_ConnectionPtr m_pConnection;
_variant_t RecordsAffected;
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open(_bstr_t(DBName),"","",adModeUnknown);
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format("连接数据库失败!/r错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);
return;
}
CString TableName;
TableName = (CString)"select * from" + OriTable;// 从数据库中找到名为oriTable的表;
//char *p = (LPSTR)(LPCTSTR)TableName;
//linkdb(p);//这句是判断是否连接成功;
select * into TargetTable from TableName where 1>2 ;//只复制结构和字段 TableName 是自动新建的表名
}
错误提示如下:
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2065: “into”: 未声明的标识符
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2146: 语法错误: 缺少“;”(在标识符“TargetTable”的前面)
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2146: 语法错误: 缺少“;”(在标识符“from”的前面)
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2065: “from”: 未声明的标识符
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2146: 语法错误: 缺少“;”(在标识符“TableName”的前面)
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2146: 语法错误: 缺少“;”(在标识符“where”的前面)
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2065: “where”: 未声明的标识符
1>d:\work\classifier\nbc\nbc\datadiscretize.cpp(655): error C2143: 语法错误 : 缺少“;”(在“常量”的前面) 展开
3个回答
展开全部
select * into TargetTable from TableName where 1=2
把原表的字段复制新创建的表,不会复制数据。
把原表的字段复制新创建的表,不会复制数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * into TargetTable from TableName where 1>2 这种写法应该有错吧
更多追问追答
追问
有错吗? 那错在哪里啊?
追答
into TargetTable ?是什么意思 你是联表查询?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询