📄 databasedlg.cpp
字号:
// DatabaseDLG.cpp : implementation file
//
#include "stdafx.h"
#include "ODBCAPI.h"
#include "DatabaseDLG.h"
#include "sqlext.h"
#include "columnst.h"
#include "tableset.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define NAME_LEN 5
/////////////////////////////////////////////////////////////////////////////
// DatabaseDLG dialog
DatabaseDLG::DatabaseDLG(CWnd* pParent /*=NULL*/)
: CDialog(DatabaseDLG::IDD, pParent)
{
//{{AFX_DATA_INIT(DatabaseDLG)
m_editdsn = _T("");
m_edituser = _T("");
m_editauth = _T("");
//}}AFX_DATA_INIT
}
void DatabaseDLG::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DatabaseDLG)
DDX_Text(pDX, IDC_EDIT1, m_editdsn);
DDX_Text(pDX, IDC_EDIT2, m_edituser);
DDX_Text(pDX, IDC_EDIT3, m_editauth);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DatabaseDLG, CDialog)
//{{AFX_MSG_MAP(DatabaseDLG)
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DatabaseDLG message handlers
void DatabaseDLG::OnButton1()
{
// TODO: Add your control notification handler code here
m_editdsn = "";
m_edituser = "";
m_editauth = "";
CString str;
str = "INSERT INTO users(ID, username,old,birthday) VALUES (?,?,?,?)";
UpdateData(TRUE);
strdsn = m_editdsn.GetBuffer(m_editdsn.GetLength());
m_editdsn.ReleaseBuffer();
struser = m_edituser.GetBuffer(m_edituser.GetLength());
m_edituser.ReleaseBuffer();
strauth = m_editauth.GetBuffer(m_editauth.GetLength());
m_editauth.ReleaseBuffer();
strsql = str.GetBuffer(str.GetLength());
str.ReleaseBuffer();
SQLHENV henv;
SQLHDBC hdbc;
SQLHSTMT hstmt;
SQLRETURN retcode;
DATE_STRUCT dsBirthday;
SQLCHAR szName[NAME_LEN];
SQLSMALLINT sCustID,sOld;
SQLINTEGER cbCustID = 0,cbName = SQL_NTS,cbOld = 0,cbBirthday = 0;
retcode = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
if (retcode==SQL_SUCCESS || SQL_SUCCESS_WITH_INFO)
{
retcode = SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
if (retcode==SQL_SUCCESS || SQL_SUCCESS_WITH_INFO)
{
retcode = SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
if (retcode==SQL_SUCCESS || SQL_SUCCESS_WITH_INFO)
{
SQLSetConnectAttr(hdbc,SQL_LOGIN_TIMEOUT,(void*)5,0);
retcode = SQLConnect(hdbc,(SQLCHAR*)strdsn,SQL_NTS,(SQLCHAR*)struser,0,(SQLCHAR*)strauth,0);
if (retcode==SQL_SUCCESS || SQL_SUCCESS_WITH_INFO)
{
retcode = SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
if (retcode==SQL_SUCCESS || SQL_SUCCESS_WITH_INFO)
{
//MessageBox("Database connection done","info",MB_ICONINFORMATION);
retcode = SQLPrepare(hstmt,(SQLCHAR*)strsql,SQL_NTS);
if (retcode==SQL_SUCCESS || SQL_SUCCESS_WITH_INFO)
{
SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_SSHORT,SQL_INTEGER,0,0,&sCustID,0,&cbCustID);
SQLBindParameter(hstmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,NAME_LEN,0,szName,0,&cbName);
SQLBindParameter(hstmt,3,SQL_PARAM_INPUT,SQL_C_SSHORT,SQL_INTEGER,0,0,&sOld,0,&cbOld);
SQLBindParameter(hstmt,4,SQL_PARAM_INPUT,SQL_C_TYPE_DATE,SQL_TYPE_DATE,0,0,&dsBirthday,0,&cbBirthday);
}
sCustID = 2;
// szName = (SQLCHAR*)"jack";
sOld = 23;
dsBirthday.year = 1986;
dsBirthday.month = 7;
dsBirthday.day = 19;
SQLExecute(hstmt);
SQLFreeHandle(SQL_HANDLE_STMT,hstmt);
}
SQLDisconnect(hdbc);
}
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
}
}
SQLFreeHandle(SQL_HANDLE_ENV,henv);
}
UpdateData(FALSE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -