String constr = "server=局域网主机的IP地址;database=数据库名;uid=用户名;pwd=密码";
//String constr = "server局域网主机IP地址;database=数据库名;Integrated security=true";这个是Windows身份验证连接的代码
SqlConnection con = new SqlConnection(constr);
conOpen();
// responseWrite(conState);
String sql = "select from Student";
SqlCommand cmd = new SqlCommand(sql,con);
SqlDataReader dr = cmdExecuteReader();
while (drRead())
{
ResponseWrite(dr[1]ToString()+""+dr["name"]ToString()+"<br>");//dr[2]=dr["name"] responsewrite(drgetInt32(3)+"<br>")
}
drClose();
conClose();
给你代码看吧
#pragma once
#include "afxh"
#import "C:\Program Files\Common Files\System\ado\msado15dll" rename_namespace("AdoNs")rename("BOF","adoBOF")rename("EOF","adoEOF")
using namespace AdoNs;
//#import "c:\program files\common files\system\ado\msado15dll" no_namespace rename ("EOF", "adoEOF")
class CADOConn :public CObject
{
public:
_RecordsetPtr m_pRecordset;
_ConnectionPtr m_pConnection;
public:
_RecordsetPtr GetRecordset(_bstr_t bstrSQL,_bstr_t DB_Name);
void ExitConnect();
BOOL OnInitADOConn(_bstr_t DB_Name);
BOOL Execute(_bstr_t bstrSQL,_bstr_t DB_Name);
public:
CADOConn(void);
public:
~CADOConn(void);
};
// GridImageDlgcpp : implementation file
//
#include "stdafxh"
#include "GridImageh"
#include "GridImageDlgh"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGridImageDlg dialog
CGridImageDlg::CGridImageDlg(CWnd pParent /=NULL/)
: CDialog(CGridImageDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CGridImageDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CGridImageDlg::DoDataExchange(CDataExchange pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CGridImageDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
DDX_GridControl(pDX, IDC_GRIDCTRL, m_GridCtrl);
}
BEGIN_MESSAGE_MAP(CGridImageDlg, CDialog)
//{{AFX_MSG_MAP(CGridImageDlg)
ON_NOTIFY(GVN_BEGINLABELEDIT, IDC_GRIDCTRL, OnGridSelChange )
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_INSERT, OnInsert)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_BN_CLICKED(IDC_SAVE, OnSave)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CGridImageDlg message handlers
BOOL CGridImageDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//获得主程序的路径
CString sPath;
GetModuleFileName(NULL,sPathGetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPathReleaseBuffer ();
int nPos;
nPos=sPathReverseFind ('\\');
sPath=sPathLeft (nPos);
CString strCrePath; //在程序路径下创建一个文件夹
strCrePathFormat("%s%s",sPath,_T("\\临时\\"));
CreateDirectory(strCrePath,NULL);
pBuffer = NULL;
index = 1;
m_GridCtrlSetColumnCount(7);
m_GridCtrlSetFixedRowCount(1);
m_GridCtrlSetItemText(0, 0, _T("编号"));
m_GridCtrlSetItemText(0, 1, _T("桥梁编号"));
m_GridCtrlSetItemText(0, 2, _T("数据"));
m_GridCtrlSetItemText(0, 3, _T("类别名称"));
m_GridCtrlSetItemText(0, 4, _T("后缀"));
m_GridCtrlSetItemText(0, 5, _T("拍摄日期"));
m_GridCtrlSetItemText(0, 6, _T("描述"));
CString strSQL;
CADOConn m_CAdoConn;
_RecordsetPtr pRecordset;
strSQL=_T("select from 基本信息");
pRecordset=m_CAdoConnGetRecordset((_bstr_t)strSQL,(_bstr_t)("linji"));
int m_ncount ;
m_ncount=pRecordset->GetRecordCount();
m_GridCtrlSetRowCount(m_ncount+1);
//设置数据栏灰色
while (m_ncount > 0)
{
m_GridCtrlSetItemBkColour(m_ncount,2,RGB(236,233,216));
m_GridCtrlSetItemText(m_ncount,2,_T(""));
m_ncount--;
}
int row = 1;
while (!pRecordset->adoEOF)
{
CString str;
FieldsPtr pFields = pRecordset->Fields;
FieldPtr pField = pFields->GetItem(0L);
if (pField->Valuevt != VT_NULL)
m_GridCtrlSetItemText(row, 0L,(char)(_bstr_t)pField->Value);
pField = pFields->GetItem(1L);
if (pField->Valuevt != VT_NULL)
m_GridCtrlSetItemText(row, 1L, (char)(_bstr_t)pField->Value);
pField = pFields->GetItem(2L);
if (pField->Valuevt != VT_NULL)
m_GridCtrlSetItemText(row, 3L,(char)(_bstr_t)pField->Value);
pField = pFields->GetItem(3L);
if (pField->Valuevt != VT_NULL)
m_GridCtrlSetItemText(row, 4L, (char)(_bstr_t)pField->Value);
pField = pFields->GetItem(5L);
if (pField->Valuevt != VT_NULL)
m_GridCtrlSetItemText(row, 5L, (char)(_bstr_t)pField->Value);
pField = pFields->GetItem(6L);
if (pField->Valuevt != VT_NULL)
m_GridCtrlSetItemText(row, 6L, (char)(_bstr_t)pField->Value);
//读取数据
nSize = pRecordset->GetFields()->GetItem("数据")->ActualSize;
if (nSize <= 0)
{
m_GridCtrlSetItemText(row,2L,_T(""));
}
if(nSize > 0)
{
_variant_t varBLOB;
varBLOB = pRecordset->GetFields()->GetItem("数据")->GetChunk(nSize);
if(varBLOBvt == (VT_ARRAY | VT_UI1))
{
if(pBuffer = new BYTE [nSize+1]) ///重新申请必要的存储空间
{
char pBuf = NULL;
SafeArrayAccessData(varBLOBparray,(void )&pBuf);
memcpy(pBuffer,pBuf,nSize); ///复制数据到缓冲区
SafeArrayUnaccessData (varBLOBparray);
}
}
//保存文件到临时
CString strExt;
strExtFormat("%s%s",_T(""),m_GridCtrlGetItemText(row,4));
CString str;
strFormat("%s%d%s",strCrePath,index,strExt); //文件名和后缀名
CFile outFile(str,CFile::modeCreate|CFile::modeWrite);
outFileWrite(pBuffer,nSize);
CString strindex;
strindexFormat("%d",index);
m_GridCtrlSetItemText(row,2,strindex);
index++;
}
row++;
pRecordset->MoveNext();
}
m_CAdoConnExitConnect();
return TRUE; // return TRUE unless you set the focus to a control
}
void CGridImageDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAboutDoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon For MFC applications using the document/view model,
// this is automatically done for you by the framework
void CGridImageDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dcGetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rectWidth() - cxIcon + 1) / 2;
int y = (rectHeight() - cyIcon + 1) / 2;
// Draw the icon
dcDrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window
HCURSOR CGridImageDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CGridImageDlg::OnAdd()
{
//添加一行
int rowcount = m_GridCtrlGetRowCount();
m_GridCtrlSetRowCount(rowcount+1);
//设置该行属性,颜色,不可以修改,字段
m_GridCtrlSetItemBkColour(rowcount,2,RGB(236,233,216));
CString strindex;
strindexFormat("%d",index);
m_GridCtrlSetItemText(rowcount,2,strindex);
index++;
//添加日期数据
CTime nTime = CTime::GetCurrentTime();
CString str;
strFormat("%d-%d-%d",nTimeGetYear(),nTimeGetMonth(),nTimeGetDay());
m_GridCtrlSetItemText(rowcount, 5, str);
//设置光标,自动滚动到最后一行
SCROLLINFO si;
sicbSize = sizeof(SCROLLINFO);
sifMask = SIF_POS;
sinPos = 20000;
m_GridCtrlSetScrollInfo(SB_VERT,&si,TRUE);
m_GridCtrlSetFocusCell(rowcount,0);
}
void CGridImageDlg::OnInsert()
{
int row = m_GridCtrlGetFocusCell()row;
if (row==-1)
{
MessageBox(_T("请选择插入位置"));
return;
}
int rowcount = m_GridCtrlGetRowCount();
m_GridCtrlInsertRow("",row);
m_GridCtrlSetFocusCell(row,0);
m_GridCtrlSetRowHeight(row,25);
//设置该行属性,颜色,字段
m_GridCtrlSetItemBkColour(row,2,RGB(236,233,216));
CString strindex;
strindexFormat("%d",index);
m_GridCtrlSetItemText(row,2,strindex);
index++;
//添加日期数据
CTime nTime = CTime::GetCurrentTime();
CString str;
strFormat("%d-%d-%d",nTimeGetYear(),nTimeGetMonth(),nTimeGetDay());
m_GridCtrlSetItemText(row, 5, str);
m_GridCtrlInvalidate();
}
void CGridImageDlg::OnDelete()
{
int row = m_GridCtrlGetFocusCell()row;
if( row == -1)
{
MessageBox(_T("请选择要删除的行"));
return;
}
if (row > 0)
{
m_GridCtrlDeleteRow(row);
}
//设置光标位置
if (m_GridCtrlGetRowCount() > row)
m_GridCtrlSetFocusCell(row,0);
else
m_GridCtrlSetFocusCell(m_GridCtrlGetRowCount()-1,0);
m_GridCtrlInvalidate();
}
void CGridImageDlg::OnSave()
{
CString strSQL;
CADOConn m_CAdoConn;
_RecordsetPtr pRecordset;
//先删除
strSQL=_T("delete 基本信息");
pRecordset=m_CAdoConnGetRecordset((_bstr_t)strSQL,(_bstr_t)("linji"));
//后添加
strSQL=_T("select from 基本信息");
pRecordset=m_CAdoConnGetRecordset((_bstr_t)strSQL,(_bstr_t)("linji"));
int m_Rcount = 1;
while (m_Rcount < m_GridCtrlGetRowCount())
{
pRecordset->AddNew();
if(m_GridCtrlGetItemText(m_Rcount,0)!="")
pRecordset->Fields->GetItem(_variant_t("编号"))->Value=_bstr_t(m_GridCtrlGetItemText(m_Rcount,0));
if(m_GridCtrlGetItemText(m_Rcount,1)!="")
pRecordset->Fields->GetItem(_variant_t("桥梁编号"))->Value=_bstr_t(m_GridCtrlGetItemText(m_Rcount,1));
//获得文件名
CString m_sname;
m_snameFormat("%s",m_GridCtrlGetItemText(m_Rcount,2));
//获取扩展名
CString m_sExt;
m_sExtFormat("%s%s",_T(""),m_GridCtrlGetItemText(m_Rcount,4));
//获得主程序的路径
CString sPath;
GetModuleFileName(NULL,sPathGetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPathReleaseBuffer ();
int nPos;
nPos=sPathReverseFind ('\\');
sPath=sPathLeft (nPos);
//获取数据
CFile f;
CString FilePathName;
FilePathNameFormat("%s%s%s%s",sPath,_T("\\临时\\"),m_sname,m_sExt); //文件名和后缀名
CFileException e;
if(fOpen(FilePathName, CFile::modeRead | CFile::typeBinary, &e)) //打开了一个文件
{
int nSize = fGetLength(); //先得到文件长度
BYTE pBuffer = new BYTE [nSize]; //按文件的大小在堆上申请一块内存
if (fRead(pBuffer, nSize) > 0 ) //把文件读到pBuffer(堆上申请一块内存)
{ // +----------------------------------------------
BYTE pBuf = pBuffer; ///下面这一大段是把pBuffer里的数据放到库中
VARIANT varBLOB;
SAFEARRAY psa;
SAFEARRAYBOUND rgsabound[1];
if(pBuf)
{
rgsabound[0]lLbound = 0;
rgsabound[0]cElements = nSize;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)nSize; i++)
SafeArrayPutElement (psa, &i, pBuf++);
varBLOBvt = VT_ARRAY | VT_UI1;
varBLOBparray = psa;
pRecordset->GetFields()->GetItem("数据")->AppendChunk(varBLOB);
}
delete [] pBuffer; //删掉堆上申请的那一块内存
pBuf=0; //以防二次乱用
fClose();
}
}
if(m_GridCtrlGetItemText(m_Rcount,3)!="")
pRecordset->Fields->GetItem(_variant_t("类别名称"))->Value=_bstr_t(m_GridCtrlGetItemText(m_Rcount,3));
if(m_GridCtrlGetItemText(m_Rcount,4)!="")
pRecordset->Fields->GetItem(_variant_t("后缀"))->Value=_bstr_t(m_GridCtrlGetItemText(m_Rcount,4));
if(m_GridCtrlGetItemText(m_Rcount,5)!="")
pRecordset->Fields->GetItem(_variant_t("拍摄日期"))->Value=_bstr_t(m_GridCtrlGetItemText(m_Rcount,5));
if(m_GridCtrlGetItemText(m_Rcount,6)!="")
pRecordset->Fields->GetItem(_variant_t("描述"))->Value=_bstr_t(m_GridCtrlGetItemText(m_Rcount,6));
m_Rcount++;
pRecordset->Update();
}
m_CAdoConnExitConnect();
}
void CGridImageDlg::OnCancel()
{
//删除过程:先删除文件夹的文件,再删除文件夹
CString sPath;
GetModuleFileName(NULL,sPathGetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPathReleaseBuffer ();
int nPos;
nPos=sPathReverseFind ('\\');
sPath=sPathLeft (nPos);
CString strDelPath;
strDelPathFormat("%s%s",sPath,_T("\\临时"));//获得临时的路径
CFileFind tempFind;
CString temp;
temp=strDelPath+"\\";//遍历临时文件夹下所有文件
BeginWaitCursor();
BOOL IsFinded=tempFindFindFile(temp);
while(IsFinded)
{
IsFinded=tempFindFindNextFile();
if(!tempFindIsDots())
{
if(tempFindIsDirectory())
{
CString tempStr;
tempStr=tempFindGetFileName();
tempStr=strDelPath+"\\"+tempStr;
DeleteFile(tempStr);
}
else
{
CString tempStr;
tempStr=strDelPath+"\\"+tempFindGetFileName();
DeleteFile(tempStr);
}
}
}
tempFindClose();
if(!RemoveDirectory(strDelPath))
{
MessageBox("删除目录失败!","警告信息",MB_OK);
}
//关闭窗口
CDialog::OnCancel();
}
//DEL BOOL CGridImageDlg::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT pResult)
//DEL {
//DEL if (wParam ==IDC_GRIDCTRL)
//DEL {
//DEL CCellID focuscell;
//DEL focuscell = m_GridCtrlGetFocusCell();
//DEL
//DEL int row = focuscellrow;
//DEL int col = focuscellcol;
//DEL if ((col == 2)&&(row > 0))
//DEL {
//DEL dlgDatam_nrow = row;
//DEL dlgDatam_sname = m_GridCtrlGetItemText(row,2);//获得索引名
//DEL dlgDatam_OutFileName = m_GridCtrlGetItemText(row,3); //获得文件名
//DEL dlgDatam_sEXt = m_GridCtrlGetItemText(row,4); //获得扩展名
//DEL if (dlgDatam_sname == "") //如果选中的行没有编号
//DEL {
//DEL CString strIndex1;
//DEL strIndex1Format("%d",index);
//DEL m_GridCtrlSetItemText(dlgDatam_nrow+1,2,strIndex1);
//DEL CString strIndex2;
//DEL strIndex2Format("%d",index);
//DEL dlgDatam_sname = strIndex2;
//DEL index++;
//DEL }
//DEL if (dlgDataDoModal()==IDOK)
//DEL {
//DEL //如果浏览文件,获得文件名及扩展名
//DEL if (dlgDataFileTitle!=""||dlgDataFileEXt!="")
//DEL {
//DEL m_GridCtrlSetItemText(row,3,dlgDataFileTitle);
//DEL m_GridCtrlSetItemText(row,4,dlgDataFileEXt);
//DEL dlgDataFileTitle = "";
//DEL dlgDataFileEXt = "";
//DEL }
//DEL }
//DEL }
//DEL
//DEL }
//DEL pResult = 1;
//DEL return CDialog::OnNotify(wParam, lParam, pResult);
//DEL }
void CGridImageDlg::OnGridSelChange(NMHDR pNotifyStruct, LRESULT result )
{
NM_GRIDVIEW pNmgv = (NM_GRIDVIEW)pNotifyStruct;
result = 0;
//获得第3列,某行(首行除外)
if ((pNmgv->iColumn == 2)&&(pNmgv->iRow != 0))
{
dlgDatam_nrow = pNmgv->iRow-1;
dlgDatam_sname = m_GridCtrlGetItemText(pNmgv->iRow,2);//获得索引名
dlgDatam_OutFileName = m_GridCtrlGetItemText(pNmgv->iRow,3); //获得文件名
dlgDatam_sEXt = m_GridCtrlGetItemText(pNmgv->iRow,4); //获得扩展名
if (dlgDatam_sname == "") //如果选中的行没有编号
{
CString strIndex;
strIndexFormat("%d",index);
m_GridCtrlSetItemText(dlgDatam_nrow+1,2,strIndex);
dlgDatam_sname = strIndex;
index++;
}
if (dlgDataDoModal()==IDOK)
{
//如果浏览文件,获得文件名及扩展名
if (dlgDataFileTitle!=""||dlgDataFileEXt!="")
{
m_GridCtrlSetItemText(dlgDatam_nrow+1,3,dlgDataFileTitle);
m_GridCtrlSetItemText(dlgDatam_nrow+1,4,dlgDataFileEXt);
dlgDataFileTitle = "";
dlgDataFileEXt = "";
}
}
}
}
说明客户端访问的服务器数据库所在的位置,是需要验证才可以连接的。
也就是说你的网络环境没有形成有效信任和验证。
建议用PDC 域验证的方式,让客户端登陆域,sql的数据库权限不要用sa方式,最好用 domain\user 的方式来管理。
1Access数据库的DSN-less连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconnOpen"Driver={Microsoft Access Driver(mdb)};DBQ="& _
ServerMapPath("数据库所在路径")
2Access OLE DB连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconopen"Provider=MicrosoftJetOLEDB40;"& _
"Data Source=" & ServerMapPath("数据库所在路径")
3SQL server连接方法:
set adocon=servercreateobject("adodbrecordset")
adoconOpen"Driver={SQL Server};Server=(Local);UID=;PWD=;"& _
"database=数据库名;"
4SQL server OLE DB连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconopen"provider=SQLOLEDB1;Data Source=RITANT4;"& _
"user ID=;Password=;"& _
"inital Catalog=数据库名"
5Oracle 连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconopen"Driver={microsoft odbc for oracle};server=oracleseverworld;uid=admin;pwd=pass;"
6Oracle OLE DB 连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconopen"Provider=OraOLEDBOracle;data source=dbname;user id=admin;password=pass;"
7dBase 连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconopen"Driver={microsoft dbase driver(dbf)};driverid=277;dbq=------------;"
8mySQL 连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconopen"Driver={mysql};database=yourdatabase;
uid=username;pwd=yourpassword;option=16386;"
9Visual Foxpro 连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconopen"Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=dbc;Exclusive=No;"
10MS text 连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconopen"Driver={microsoft text driver(txt; csv)};dbq=-----;"&_
"extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"
11MS text OLE DB 连接方法:
set adocon=ServerCreateobject("adodbconnection")
adoconopen"Provider=microsofjetoledb40;data source=your_path;"&_
"Extended Properties'text;FMT=Delimited'"
<二>常用的四种SQL命令:
1查询数据记录(Select)
语法:Select 字段串行 From table Where 字段=内容
例子:想从book表中找出作者为"cancer"的所有记录,SQL语句便如下:
select from book where author=’cancer’
""是取出book表所有的字段,如查询的字段值为数字,则其后的"内容"便无须加上单引号,如是日期,则在Access中用(#)包括,而在SQL server中则用(’)包括,
如:
select from book where id=1
select from book where pub_date=#2002-1-7# (Access)
select from book where pub_date=’2002-1-7’ (SQL Server)
提示:
日期函数to_date不是标准sql文,不是所有的数据库适用,所以大家在使用的时候要参考数据库具体语法
另外如果是查询传入的变量,则如下:
strau=requestform("author")
strsql="select from book where author=’"&strau&"’"
如果查询的是数字,则:
intID=requestform("id")
strsql="select from book where id="&intID
在很多数据库中,如:oracle,上面的语句是可以写成:
strsql="select from book where id='"&intID&"'"
但是字符型一定不能按照数字格式写,需要注意。
2添加记录(Insert)
语法:
Insert into table(field1,field2,) Values (value1,value2,)
例子:添加一作者是"cancer"的记录入book表:
insert into book (bookno,author,bookname) values (’CF001’,’cancer’,’Cancer无组件上传程序’)
同样,如果用到变量就如下:
strno=requestform("bookno")
strau=requestform("author")
strname=requestform("bookname")
strsql="insert into book (bookno,author,bookname) values (’"&strno&"’,’"&strau&"’,’"&strname&"’)"
3用Recordset对象的Addnew插入数据的方法:
语法:
rsaddnew
rs("field1")value=value1
rs("field2")value=value2
rsupdate
4修改数据记录(Update)
语法:
update table set field1=value1,field2=value2,where fieldx=valuex
例子:
update book set author=’babycrazy’ where bookno=’CF001’
如果用到变量就如下:
strno=requestform("bookno")
strau=requestform("author")
strsql="update book set author=’"&strau&"’ where bookno=’"&strno"’"
5Recordset对象的Update方法:
语法:
rs("field1")value=value1
rs("field2")value=value2
rsupdate
注意:使用语法3和语法5的时候,一定要注意字段的类型(尤其是日期型)一致,否则出错的几率非常的高。
例子:
strno=requestform("bookno")
strau=requestform("author")
set adocon=servercreateobject("adodbconnection")
adoconopen "Driver={Microsoft Access Driver(mdb)};DBQ=" & _
ServerMappath=("/cancer/cancermdb")
strsql="select from book where bookno=’"&strno&"’"
set rs=servercreateobject("adodbrecordset")
rsopen strsql,adconn,1,3
if not rseof then ’如果有此记录的话
rs("author")value=strau
rsupdate
end if
rsclose
set rs=nothing
adoconclose
set adocon=nothing
6删除一条记录(Delete)
语法:
Delete table where field=value
例子:删除book表中作者是cancer的记录
delete book where author=’cancer’
(注意:如果book表中author字段的值为cancer的记录有多条,将会删除所有author为cancer的记录)
以上就是关于SQL server 在局域网中访问怎么解决,怎么样调用另一台电脑的数据库全部的内容,包括:SQL server 在局域网中访问怎么解决,怎么样调用另一台电脑的数据库、编程实现访问SQL Server数据库、sql server 数据库客户端访问问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)