仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 796|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网页设计小YSQL ServerB接掉″e`及解Q

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:26:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继server在利用SQLServer的^程中,用粲龅降淖疃嗟}莫^於B接掉×恕R话愣裕幸韵煞NB接SQLServer的体例,一是使用SQLServer自的客舳斯ぞ撸缙I办理器、查剖析器、事仗讲槠鞯龋欢抢糜糇约洪_l的客舳顺淌剑ASP_本、VB程式等,客舳顺淌街杏质抢ODBC大概OLEDB等B接SQLServer。上面,我⒕瓦@煞NB接体例,具w怎样斫QB接掉〉}。

  1、客舳斯ぞ哌B接掉

  在利用SQLServer自的客舳斯ぞ撸ㄒ云I办理器槔┻B接SQLServerr,最常的e`有以下一些:

  1、SQLServer不存在或L被拒^

   ConnectionOpen(Connect())

  





  2、用sa登掉 T颍何磁c信托SQLServerB接相P。

  





  3、超r已^期。

  


 上面我顺次介B怎样斫Q@三最常的B接e`。

  第一e`"SQLServer不存在或L被拒^"一般是最}s的,e`l生的缘故原由比^多,必要z查的方面也比^多。一样平常f恚幸韵N大概性:

  1、SQLServer名Q或IP地点拼有`;

  2、伺服器端W路设置有`;

  3、客舳司W路设置有`。

  要解Q@},我一样平常要遵守以下的步E硪徊讲秸页е洛e`的缘故原由。

  起首,z查W路物理B接:

   ping<伺服器IP地点>
 
  大概

   ping<伺服器名Q>

  假如ping<伺服器IP地点>掉。f明物理B接有},@r候要z查硬wO洌缇W卡、HUB、路由器等。有一N多是由於客舳撕退欧髦g安b有防火w酿成的,好比ISAServer。防火w大概谡ping、telnet等的虼嗽z查B接}的r候,我要先把防火wrP],大概打_一切被封]的端口。

  假如ping<伺服器IP地点>乐成而ping<伺服器名Q>掉。tf明名字剖析有},@r候要z查DNS服帐欠裾!Sr候客舳撕退欧鞑辉谕局域WY面,@r候极可能o法间接利用伺服器名Q俗R伺服器,@r候我可使用HOSTS文件磉M行名字剖析,具w的办法是:

  1、利用事本打_HOSTS文件(一样平常情r下位於C:WINNTsystem32driversetc).
www.ckuyun.com
  2、增加一lIP地点c伺服器名Q的,如:

    172.168.10.24myserver

  也能够在SQLServer的客舳司W路用工具Y面M行设置,後面性f明。

  其次,利用telnet命令z查SQLServer伺服器事情B:

   telnet<伺服器IP地点>1433

  假如命令绦谐晒Γ梢钥吹轿幕一W之後游嗽谧笊辖遣煌iW樱@f明SQLServer伺服器事情一般,K且正在O1433端口的TCP/IPB接;假如命令前往"o法打_B接"的e`Y,tf明伺服器端]有SQLServer服眨部赡芩欧鞫]⒂TCP/IPfh,大概伺服器端]有在SQLServer默J的端口1433上O。

  接著,我要到伺服器上z查伺服器真个W路设置,z查是不是⒂昧嗣艿溃欠⒂昧TCP/IPfh等等。我能够使用SQLServer自的伺服器W路利用工具磉M行z查。

  c簦撼淌->MicrosoftSQLServer->伺服器W路利用工具,打_工具後看到的面以下D所示:

  



  @e我能够看到伺服器⒂昧四男fh。一样平常而言,我⒂妹艿酪约TCP/IPfh。

  c中TCP/IPfh,x"傩",我能够z查SQKServer服漳J端口的O置,以下D所示:

  





  一样平常而言,我利用SQLServer默J的1433端口。假如x中"[躲伺服器",t意味著客舳o法通^枚e伺服器砜吹竭@_伺服器,起到了保o的感化,但不影B接。

  z查完了伺服器真个W路设置,接下砦要到客舳z查客舳说木W路设置。我同涌梢岳SQLServer自的客舳司W路利用工具磉M行z查,所分歧的是@次是在客舳磉行@工具。

  c簦撼淌->MicrosoftSQLServer->客舳司W路利用工具,打_工具後看到的面以下D所示:

  



  @e我能够看到客舳⒂昧四男fh。一样平常而言,我同有枰⒂妹艿酪约TCP/IPfh。

  cTCP/IPfh,x"傩",能够z查客舳四JB接端口的O置,以下D所示。

  



  端口必c伺服器分歧。

  "e名"x卡,能够樗欧髋渲e名。伺服器的e名是用磉B接的名Q,B接抵械乃欧魇钦嬲乃欧髅Q,烧呖梢韵嗤虿煌H缦D中,我可使用myserver泶嬲嬲乃欧髅Qsql2kcn-02,K且利用W路NamedPipes。e名的O置c利用HOSTS文件有类似之

  





  通^以上方面的z查,e`1l生的缘故原由基础上能够被扫除。上面我再形貌怎样斫Qe`2。

  用L在查剖析器Y面利用sa磉B接SQLServer,大概在企I办理器Y面利用sa硇陆ㄒSQLServer]r,常龅饺D2所示的e`Y。e`a生的缘故原由是由於SQLServer利用了"HWindows"的身份C体例,因而用o法利用SQLServer的登簦ㄈsa)M行B接。解Q办法以下所示:

  1、在伺服器端利用企I办理器,K且x"利用Windows身份C"B接上SQLServer;

  2、展_"SQLServerM",滑鼠右IcSQLServer伺服器的名Q,x"傩",再x"平安性"x卡;

  3、在"身份C"下,x"SQLServer和Windows"。

  4、从头SQLServer服铡

  在以上解Q办法中,假如在第1步中利用"利用Windows身份C"B接SQLServer掉。屈N我⒂龅揭呻y的地步:起首,伺服器只允S了Windows的身份C;其次,即便利用了Windows身份C仍旧o法B接上伺服器。@N情况被抽象地Q之"本人把本人i在了T外",因o用何N体例,用艟o法利用M行B接。H上,我能够通^修正一]员礞I值⑸矸蒡C体例改SQLServer和Windows夹杂C,步E以下所示:

  1、c"_始"-"行",进regedit,回M进]员砭器;

  2、顺次展_]员眄,g[到以下]员礞I:

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServer]

  3、在幕右方找到名Q"LoginMode",p艟p字值;

  4、⒃1改2,c"_定";

  5、P]]员砭器;

  6、从头SQLServer服铡

  此r,用艨梢猿晒Φ厥褂sa在企I办理器中新建SQLServer]裕侨匀o法利用Windows身份C形式磉B接SQLServer。@是因樵SQLServer中出缺省的登簦BUILTINAdministrators和<C器名>Administrator被h除。要恢@簦梢允褂靡韵碌姆椒ǎ

  1、打_企I办理器,展_伺服器M,然後展_伺服器;

  2、展_"平安性",右"登",然後"新建登";

  3、在"名Q"框中,进BUILTINAdministrators;

  4、在"伺服器脚色"x卡中,x"SystemAdministrators";

  5、c"_定"加入;

  6、利用同臃椒ㄌ砑<C器名>Administrator登。

  以下]员礞I

HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerLoginMode

  的值Q定了SQLServer袢『畏N身份C形式。值1,暗示利用Windows身份C形式;值2,暗示利用夹杂形式(Windows身份C和SQLServer身份C)。

  看完怎样解Q前e`的办法之後,我砜匆幌氯D3所示的第三e`。

  假如碰到第三e`,一样平常而言暗示客舳艘呀找到了@_伺服器,K且能够M行B接,不^是由於B接的rg年夜於允S的rg而е鲁鲥e。@N情r一样平常l生在用粼Internet上行企I办理器碓]粤硗庖惶ㄍ釉Internet上的伺服器,K且是慢速B接r,有大概е乱陨系某re`。有些情r下,由於局域W的W路},也е逻@拥腻e`。

  要解Q@拥腻e`,能够修正客舳说倪B接超rO置。默J情r下,通^企I办理器]粤硗庖惶SQLServer的超rO置是4秒,而查剖析器是15秒(@也是槭颤N在企I办理器Yl生e`的大概性比^年夜的缘故原由)。具w步E椋

  1、在企I办理器中,x窆δ鼙砩系"工具",再x"x";

  2、在出的"SQLServer企I办理器傩"窗口中,c"高"x卡;

  3、在"B接O置"下的"登超r(秒)"右的框中进一比^年夜的底郑20。

  查剖析器中也能够在同游恢眠M行O置。

 2、贸淌竭B接掉

  以上的三Ne`Y都是l生在SQLServer自的客舳斯ぞ咧校贸淌街形也龅筋似的e`Y,比方:

MicrosoftOLEDBProviderforSQLServer(0x80004005)
[DBNETLIB][ConnectionOpen(Connect()).]SpecifiedSQLservernotfound.

MicrosoftOLEDBProviderforSQLServer(0x80004005)
用sa登掉 T:未c信托SQLServerB接相P。

MicrosoftOLEDBProviderforODBCDriverse`80004005.
[Microsoft][ODBCSQLServerDriver]超r已^期.

  起首,我碓看以下的表示D砹私庖幌率褂ODBC和利用OLEDBB接SQLServer有什N分歧之

  



  上D中,我能够看出在H利用中,贸淌建和利用各NADOο螅ADOο罂蚣苷{用享用的OLEDB供应者。榱嗽LSQLServer,OLEDB供应了煞N分歧的办法:用於SQLServer的OLEDB供应者和用於ODBC的OLEDB供应者。@煞N分歧的办法煞N分歧的B接字符串,实倪B接字符串法以下所示:

  1、利用用於SQLServer的OLEDB供应者:

  利用SQLServer身份C:

oConn.Open"Provider=sqloledb;"&_
"DataSource=myServerName;"&_
"InitialCatalog=myDatabaseName;"&_
"UserId=myUsername;"&_
"Password=myPassword"

  利用Windows身份C(信托B接):

oConn.Open"Provider=sqloledb;"&_
"DataSource=myServerName;"&_
"InitialCatalog=myDatabaseName;"&_
"IntegratedSecurity=SSPI"

  2、利用用於ODBC的OLEDB供应者(不利用ODBC矗

  利用SQLServer身份C:

oConn.Open"Driver={SQLServer};"&_
"Server=MyServerName;"&_
"Database=myDatabaseName;"&_
"Uid=myUsername;"&_
"Pwd=myPassword"

  利用Windows身份C(信托B接):

oConn.Open"Driver={SQLServer};"&_
"Server=MyServerName;"&_
"Database=myDatabaseName;"&_
"Trusted_Connection=yes"

  3、利用用於ODBC的OLEDB供应者(利用ODBC矗

oConn.Open"DSN=mySystemDSN;"&_
"Uid=myUsername;"&_
"Pwd=myPassword"

  假如碰到B接掉〉那r,我只需依照一中所示的办法,Y合程式中的B接字符串M行z查,基础都能失掉解Q。别的,有以下要注重的中央:

  1、设置ODBCr,c"客舳"设置x能够我指定B接利用的W路、端口等傩裕缦D所示:

  




  2、假如碰到B接超r的e`,我能够在程式中修正Connectionο蟮某rO置,再打_B接。比方:


<%
SetConn=Server.CreateObject("ADODB.Connection")
DSNtest="DRIVER={SQLServer};SERVER=ServerName;UID=USER;PWD=password;DATABASE=mydatabase"
Conn.Properties("ConnectTimeout")=15以秒挝
Conn.openDSNtest
%>
  3、假如碰到查超r的e`,我能够在程式中修正Recordsetο蟮某rO置,再打_Y果集。比方:


DimcnAsNewADODB.Connection
DimrsAsADODB.Recordset
...
cmd1=txtQuery.Text
Setrs=NewADODB.Recordset
rs.Properties("CommandTimeOut")=300
同右悦挝唬绻O置0暗示o限定
rs.Opencmd1,cn
rs.MoveFirst
...
  3、小Y

  本文Υ蟛糠钟粼谑褂SQLServer^程中常的B接掉〉腻e`,重c了在利用SQLServer客舳斯ぞ咭约坝糸_l的贸淌煞N情r下,怎样K解QB接掉〉腻e`。看^本文以後,信任每x者都SQLServer的B接事情道理、身份C体例和贸淌介_l等有一^槿娑钊氲倪B接。本文中一切的y大概示例均在Windows2000AdvancedServer+SQLServer2000企I版上通^。
Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失
谁可相欹 该用户已被删除
沙发
发表于 2015-1-19 12:19:18 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
深爱那片海 该用户已被删除
板凳
发表于 2015-1-26 16:17:59 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
透明 该用户已被删除
地板
发表于 2015-2-4 20:08:15 | 只看该作者
微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。
若相依 该用户已被删除
5#
发表于 2015-2-10 06:38:02 | 只看该作者
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
老尸 该用户已被删除
6#
发表于 2015-3-1 02:03:41 | 只看该作者
varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。
只想知道 该用户已被删除
7#
发表于 2015-3-10 12:25:29 | 只看该作者
这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。
活着的死人 该用户已被删除
8#
发表于 2015-3-17 07:08:24 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
兰色精灵 该用户已被删除
9#
发表于 2015-3-24 01:03:48 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-27 16:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表