当前位置:首页 » 编程语言 » vc引用sql查询语句
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

vc引用sql查询语句

发布时间: 2023-01-06 13:11:21

‘壹’ VC++ MFC 的一个sql查询语句

CADODatabase m_DBCn;//数据库对象
CADORecordset m_Rs;//记录集对象
在头文件里
public:
CADORecordset m_Rs;//新增变量
CADODatabase m_DBCn;//新增变量

CDataGRid m_datagrid;//DataGrid控件对象
...
CString m_adodc; m_adodc.Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;")
_T("Data Source=note.mdb"));
m_DBCn.Open((LPCTSTR)m_adodc); //打开程序数据库
m_Rs.SetDatabase(&m_DBCn); m_Rs.Open(_T("select * from list where id=1;")); //执行查询
m_datagrid.SetRefDataSource((LPUNKNOW)m_Rs.GetRecordset());//显示在DataGrid控件中

‘贰’ vc里执行SQL语句~

因为这个()里要接受参数值的。0,adCmdText。分别对应着这两个变量的值。也就是说把0,和adCmdText的内容插入数据表中。

你可以这样改("insert into zrn values(%d,/'%s/')",0,adCmdText)

‘叁’ SQL语句 VC++

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

客户信息记录

sql.Format("Insert into customer_info_tab(id,name,area,profession,vocation,pany,approach,email,phone,mobile,interest,memo) VALUES(%d,'%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",id,m_strName,

m_strSelectedArea,m_strSelectedProfession,m_strSelectedVocation,m_strCompany,m_strSelectedApproach,m_strEmail,m_strPhone,m_strMobile,m_strInterest,m_strMemo);

更新地区信息下拉列表框的数据

TRACE(sql);

m_db.ExecuteSQL(sql);

向界面中插入新的客户信息

设置该行的其他列的值

m_listCR.SetItemText(nItem,1,m_strName);

m_listCR.SetItemText(nItem,2,m_strSelectedArea);

m_listCR.SetItemText(nItem,3,m_strSelectedProfession);

m_listCR.SetItemText(nItem,4,m_strSelectedVocation);

m_listCR.SetItemText(nItem,5,m_strCompany);

m_listCR.SetItemText(nItem,6,m_strSelectedApproach);

m_listCR.SetItemText(nItem,7,m_strEmail);

m_listCR.SetItemText(nItem,8,m_strPhone);

m_listCR.SetItemText(nItem,9,m_strMobile);

m_listCR.SetItemText(nItem,10,m_strInterest);

m_listCR.SetItemText(nItem,11,m_strMemo);

m_db.CommitTrans();

}

我的要求是 点了列表控件中的某一行 在上面的文本框中显示 然后修改内容 在点修改按钮就修改成功 使得数据库和列表控件内容该为修改后的信息

问题出在:里表空间里有3条记录 我先插入一条记录在修改就成功,如果修改原来的3条记录就会提示:违反了PRIMARY KEY约束,‘PK_customer_info_ta_31EC6D26'.不能在customer_info_tab冲插入重复键,语句终止。

怎么修改????或者用UPDATE 做什么弄啊?郁闷死了

解析:

新插入用 insert into

修改用 update

update ttt set xxx=xxxValue where ...

update customer_info_tab

set id = %d, name ='%s', area = '%s', profession = '%s',

vocation = '%s', pany = '%s', approach = '%s',

email = '%s', phone = '%s', mobile = '%s', interest = '%s',

memo = '%s')

where id = %d;

‘肆’ 怎样在VC里执行SQL语句

CString sql; sql.Format("insert into zrn(姓名)values('%s')",as); cc->Execute((_bstr_t)sql,0,adCmdText);

‘伍’ VC++中如何直接执行sql语句阿

环境:WindowsXP ; VC++6.0 + sp5 1。通过odbc直接执行SQL语句CDatabase mydb;
CRecordset myRecord;
CString strSQL;
CDBVariant cv;try{if ( !mydb.IsOpen() )
mydb.OpenEx("数据库连接字符串",CDatabase::noOdbcDialog); myRecord.m_pDatabase = &mydb;
//直接执行SQL语句,
//注意,SQL语句字符串一定不能以空格开始
strSQL = "SELECT 字段或计算列 FROM 表 WHERE 条件";
//strSQL = " SELECT 字段或计算列 FROM 表 WHERE 条件 "; //这样不行,会报错,查询语句中没有字段
myRecord.Open(CRecordset::snapshot,"需要执行的SQL语句"); int i = 0;
while ( !myRecord.IsEOF() ){myRecord.MoveFirst();
myRecord.GetFieldValue(i,cv); //获得第(i+1)列的数据,数据保存在CDBVariant变量中,不可以直接使用数字0
myRecord.MoveNext();}

‘陆’ VC中写SQl语句,查找数据,数据库是sql2000

1. 在stdafx.h 添加下面代码:
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2. 在C*App::InitInstance()中添加:
AfxOleInit();

3. 下面是一个按钮的相应事件, 数据库连接字符串 和 查询语句换成你的就可以了:
void CTestDlg::OnButton1()
{

CString strDatasource = "my2005";
CString strDatabase = "myoa";
CString strUserName = "sa";
CString strUserPwd = "yourpwd";

CString strConn; // 连接数据库字符串
CString strSql; // 查询语句
CString strRet; // 查询结果

LPTSTR lpszConn = NULL;
LPTSTR lpszSql = NULL;

_RecordsetPtr pRecordset;
_CommandPtr pCommand;
_ConnectionPtr pConnection;

strConn.Format(_T("Provider=SQLOLEDB.1;Data Source=%s;Initial Catalog=%s;User ID=%s; PWD=%s"), strDatasource, strDatabase, strUserName, strUserPwd);
strSql = _T("select pwd from UserInfo where loginName= 'test'");

try
{
HRESULT hr = pConnection.CreateInstance("ADODB.Connection");
lpszConn = new TCHAR[strConn.GetLength()+1];
_tcscpy(lpszConn, strConn);

pConnection->put_ConnectionTimeout(long(5));
if (SUCCEEDED(hr))
{
pConnection->Open(lpszConn, "", "", adModeUnknown); //adModeUnknown adConnectUnspecified

pRecordset.CreateInstance("ADODB.Recordset");

lpszSql = new TCHAR[strSql.GetLength()+1];
_tcscpy(lpszSql, strSql);

pRecordset = pConnection->Execute(lpszSql, NULL, adCmdText);
_variant_t vCount = pRecordset->GetCollect("pwd"); //取得第一个字段的值放入vCount变量

strRet.Format((_bstr_t)vCount);
MessageBox(strRet); // 显示查询结果

}

}
catch(_com_error e)
{
CString strTemp;
strTemp.Format(_T("错误:\r\n%s"), e.ErrorMessage());
AfxMessageBox(strTemp);
return;
}
/*释放资源*/
if (pRecordset->State)
{
pRecordset->Close();
pRecordset.Release();
pRecordset = NULL;

}
if ( pConnection->State)
{
pConnection->Close();
pConnection= NULL;
}
::CoUninitialize(); //释放COM 资源。
if ( lpszConn != NULL)
delete lpszConn;
if ( lpszSql != NULL)
delete lpszSql;
}

注意: sql 语句 我一般都是 查询分析器里 执行一下,看是否有错误, 然后在代码中构建 相应的字符串,根据字段的类型决定要不要 单引号。

‘柒’ VC执行sql查询

SQL语句字符串匹配确实是用=
你的open你错了,是Open,VC中要注意大小写啊
另外Open不是你这么用的
virtual BOOL Open(
UINT nOpenType = AFX_DB_USE_DEFAULT_TYPE,
LPCTSTR lpszSQL = NULL,
DWORD dwOptions = none
);
还有你要先与数据库建立连接啊,Open怎么知道去查哪个数据库的表?