SQL server 在局域网中访问怎么解决,怎么样调用另一台电脑的数据库

SQL server 在局域网中访问怎么解决,怎么样调用另一台电脑的数据库,第1张

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 数据库客户端访问问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9538817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存