[推荐] [原创]SQLServer陷阱 [问题点数:100分,结帖人hisi]

Bbs6
本版专家分:5452
结帖率 100%
Bbs8
本版专家分:34546
Bbs8
本版专家分:34546
Bbs8
本版专家分:34546
Bbs8
本版专家分:34546
Bbs8
本版专家分:34546
SqlServer金额转换函数,原创
rnCREATE function dbo.Ntoc(@ChangeMoney decimal(20,2)) returns char(100)rn--小写金额转大写函数rn--参照方小庆(inrm@263.net)先生相应的delphi函数写成rn--本函数作者:fontain(fontain@163.com)rnasrnbeginrn declare @CastChinese char(100)--将返回的结果rn declare @C varchar(100)--相应位置汉字常量rn declare @S char(100)--欲转换值的字符格式值rn declare @L int--欲转换值的长度rn declare @Z bit--布尔值,0假1真rn rn declare @st char(100)--存放转换后的整数部分rn declare @st1 char(100)--存放转换后的小数部分rn rn declare @i intrn declare @j intrn declare @n intrn rn select @st=''rn select @C='零壹贰叁肆伍陆柒捌玖◇分角圆拾佰仟万拾佰仟亿拾佰仟万'rn rn select @S=LTrim(RTrim(convert(char(50),@ChangeMoney)))rn select @L=len(@S)rn select @Z=Case When @ChangeMoney<>9) And(@i<>5) And (@i<>1) or (@Z=1) And (@i=1)) then '' else substring(@C,(@i+13),1) end+rn @strn select @Z=case when @n=0 then 1 else 0 endrn select @i=@i+1 rn endrn select @st=replace(@st,'亿万','亿')rn select @st=replace(@st,'零圆','圆')rn --转换完毕rn --小数部分转换rn select @n=cast(substring(@S,@L,1) as int)rn select @st1=case when @n=0 then '' rn else substring(@C,@n+1,1)+'分' rn end rn select @n=cast(substring(@S,@L-1,1) as int)rn select @st1=case when @st1='' then rn case when @n=0 then '整' rn else substring(@C,@n+1,1)+'角整' rn end rn else rn case when @n=0 then @st1 rn else substring(@C,@n+1,1)+'角'+@st1 rn end rn end rn --转换完毕rn select @CastChinese=case when @ChangeMoney=0 then '零元整' else rtrim(@st)+rtrim(@st1) endrn return @CastChinesernendrnrnrnWin2000 adv server+sql server2000 企业版调试通过
SqlServer密码问题(原创)
问题1、修改了系统登录密码,导致<em>sqlserver</em>启动失败。是因为SqlServer服务启动时自动绑定了一个系统帐号,一般这种情况出现在administrator帐户以外的系统帐户登录系统的情况,因为默认SqlServer是不指定帐号的。解决办法:鼠标右键单击“我的电脑”,“管理”,“服务和应用程序”,“服务”,右键单击“MSSQLSERVER”,选择“属性”,选择“本地系统帐户”或者选择
PHP单例模式中的clone陷阱原创
  说来惭愧,用PHP时间也不短了,居然一直不知道__clone成员方法的存在。   今天遇到,突然想起,我以前写得单例模式,有问题了!   单例模式类代码: &lt;?php class TestSingleton { private $sinVar = NULL; static private $testSingleton = NULL; private...
关于SQLSERVER数据操作的常用类库(原创)
根据自己平时的经验写的针对SQLSERVER操作的通用类库using System;using System.Data;using System.Data.SqlClient;using System.Web;namespace Whgw_lc{ ///  /// Data 的摘要说明。 ///  ///  /// 数据库相关操作类 /// 作者:DarkAngel /// 时间:2004-9
原创:也谈SqlServer分页
今天也来谈谈SqlServer的分页: 使用游标分页。 使用top分页。 使用ROW_NMUBER()分页(SQLServer 2005)。 对应表: sql 代码 if exists (select name from sysobjects where name='produce' and type='u')    drop table...
原创】Excel导入\导出 SqlServer
EXCEL导入SQL并生成表 SQL导入脚本select * into 要创建的表名 from openrowset('microsoft.jet.oledb.4.0','excel 5.0;hdr=yes;database=C:Book1.xls',sheet1$) 注释:hdr=yes;是插入到SQL时候把EXCEL的第一行数据当作列名。database后是要导入的EXC...
sqlserver ISNULL两个参数位数不一致的陷阱
大家先看下面一个小例子 A表的a字段: A.a = null; B表的b字段: B.b = 1234567890; 执行 ISNUL(A.a,B.b) as test 那么上面sql返回的是什么呢?大家是不是都认为是“1234567890” 哈哈,“1234567890”结果是不对的,正确的结果是“12345678 结论:使用<em>sqlserver</em>的ISNULL函数的时候,如果下面几个情况都满足 ・第...
SQLServer陷阱(一) NULL与布尔数据类型
本文旨在指出一些在使用SQLServer过程中容易犯的错误, 希望能给您带来帮助.若没有特殊说明, 本文是指在MS SQLServer 2000简体中文版的默认配置环境中.Transact-SQL中存在Boolean类型, if 后面的表达式的计算结果一般是Boolean类型, 但无法使用 declare 定义Boolean类型的变量.Boolean数据类型有三种取值, TRUE, FAL
从oracle迁移到SQLserver的陷阱
在把Oracle查询转换为SQL Server的时候要特别当心一些不容易注意到的问题。我们知道,T-SQL是SQL Server的语言引擎,而Oracle的语言引擎却是PLSQL。这两种查询语言都对ANSI SQL-92标准进行了扩展以提供额外的支持力度。你所创建的应用程序几乎都要用到这些补充特性。本文就对最常用的、非标准的Oracle扩展进行了说明,同时还要介绍下如何对这些...
SQLServer陷阱(二) 运行时错误与自动回滚事务
有些人认为一个批查询在执行中发生了错误, 这个查询就会中止, 其实是错误的.例1:declare @i intset @i = 1 / 0set @i = 1select @i结果会先报一个服务器: 消息 8134,级别 16,状态 1,行 2遇到被零除错误。然后输出结果集 1.例2:set xact_abort ondeclare @i intset @i
SQLServer陷阱(三) 字符串相等与排序规则
SQLServer简体中文版默认的排序规则是Chinese_PRC_CI_AS, 这种情况下是不区分大小写及宽字符的.A 与 a 与 A是相等的.另外字符串比较时尾随空格是被忽略的.(顺便提一下len()也是忽略尾随空格的).if abc = ABc select 1结果会输出1宽字符,尾随空格常常被忽视.
:?的陷阱
a-b? 1: -1与a&amp;gt;b ? 1: -1 不等同 在?之前,非0值即为真,a-b的作用相当于a!=b 问题出现在用c语言Qsort函数自定义比较方法时 int falling_cmp(const void *p1, const void *p2) { return ((ptrPathMes)p2)-&amp;gt;pathMea &amp;gt; ((ptrPathMes)p1)-&amp;gt;path...
+ 的陷阱
1+'2' = ?   一般来说等于 3 很合理啊,可 根据标准结果是等于 '12',+ 与字符串的结合律高于数字 。特别是对于从一段字符串中利用 正则表达式抽取数字计算来说特别要注意这个问题。 如:   &amp;lt;script&amp;gt; var reg=/(\d+),(\d+)/; var ok='1,2'.match(reg); alert(ok[1]...
'\'的陷阱
写代码,或者是写make脚本等的时候,有时候需要在一行写入很多内容,但是由于屏幕宽度的限制,如果真的全写在一行,就会导致看起来很不方便。 这个时候,'\'就成了很有帮助的符号。 把一行内容分成多行写,而且编译器仍然认为是一行。 但是使用'\'的时候,一定要铭记一点:不论分成多少行写,一直到最后一个'\'所在的行,在编译器看来都是一行。 否则,很容易被陷进去。 例如make文件中有...
陷阱!!!!!!!!!
由于 JavaScript “弱语言”的性质,使得其在使用过程中异常的宽松灵活,但也极为容易“掉进<em>陷阱</em>”。这些陷进往往隐藏的很深,所以要多加小心。 全局变量 JavaScript 通过函数管理作用域。在函数内部声明的变量只在这个函数内部,函数外面不可用。另一方面,全局变量就是在任何函数外面声明的或是未声明直接简单使用的。 “未声明直接简单使用”,指的是不用 var 关键字来声明变量。这个我们
陷阱
下面就对“<em>陷阱</em>”的发作过程和源代码作详细的揭密。 病毒具有自身加密能力(使用 JavaScript 编码技术),使得普通用户无法看到病毒原码,但在被感染 VBS 文件中并没有加密,于是作为一个入口点,我非常轻松地得到所有源码。 @ thank you! make use of other person to get rid of an enemy, trap _2001 这句话的意思可能是“借
陷阱
Groovy的等价于java的equals() == &lt;&gt; equals is() &lt;&gt; is() Groovy的映射到equals(),这个结论并不总是成立,当且仅当该类没有实现Comparable接口时,才会这样映射。如果实现了Comparable接口,则==会被映射到该类的**CompareTo()**方法。 java...
陷阱">“-="的陷阱
1.有如下代码(显示下拉框时,屏幕最大化右键菜单的显示坐标处理): 起初: Rectangle rect = System.Windows.Forms.SystemInformation.VirtualScreen; //获取在屏幕的坐标 Point screenPoint = this.ListTree.PointToScreen(e.Location); Point cmsPoi...
c陷阱与缺陷——陷阱
1.词法<em>陷阱</em> 例1:if(x=y) break;  这就话的意思就是把y赋值x,判断x是否为0,实则是在判断y是否为0; 例2:while(c=' '|| c=='\t' || c=='\n')这句话的意思就是' '|| c=='\t' || c=='\n‘赋值给c,而有’ ‘符本身就是不为0的数,所以这就是while(1)的意思。 例3: int x=4,*p=new int ;  *p=
not in 和 in的陷阱
sql 在not in 子查询有null值情况下经常出现的<em>陷阱</em> 还有个<em>陷阱</em>是: select count(1) from (MT_BDG_THREE1)  where uuid in('437044e9-660c-401b-ba22-b8e0d695e057')  and audit_state not in('3')  当表里存在audit_state 为空的数
陷阱
 <em>陷阱</em> (一) 这是一个异想天开的<em>陷阱</em> 放肆的把自己显露给路人 这还不够 它的前方赫然树着一个石碑 “有<em>陷阱</em>,请绕行” 如此佯狂的<em>陷阱</em> 我看你能猎取到什么东东 (二) 眼前走来一路人 戴着较酷的墨镜 匆匆走过石碑 然后只听“扑通通——” 就这样落入<em>陷阱</em>   听<em>陷阱</em>中穿来的声音 “为何老天对一个盲人如此不公!” “我的猎物,你既是盲人 那为何如此行路匆匆?” ...
面向对象的陷阱——构造器的陷阱
2、构造器的<em>陷阱</em>        构造器是Java每个类都会提供的一个“特殊方法”。构造器负责对Java对象执行初始化操作,不管是定义实例变量时指定的初始值,还是在非静态初始化块中所执行的操作,实际上都会被提取到构造器中来执行。 2、1 构造器返回类型        构造器不能声明返回值类型,也不能使用void声明构造器没有返回值。当为构造器声明添加任何返回值类型声明,或者添加void声明该构
免费的SqlServer优化辅助工具:SqlOptimize (原创
主要用于收集客户服务器的数据库运行情况,导出-导入到本地分析。 本工具不会修改你的数据和结构,只会读取相关数据。 1)工具软件下载 http://files.cnblogs.com/files/dude/SqlOptimize.zip 2)SqlOptimize.exe.config 配置要采集的数据库 &lt;?xml version="1.0" encoding...
***原创*** oracle数据库转换到Sqlserver的几点经验
应广大朋友的要求,本人将《PB-ORACLE通用开发框架2.1》版本的程序rn成功转换到SQLServer下,下面是我总结的几条经验,与大家分享,有不rn正确的地方,请批评指正。谢谢!kingfriend1111@163.comrnrn1.数据类型的转换 建立两个数据源basedb, basdb_sqlrn 为每个表,建立一个数据管道,修改部分字段类型 rn Oracle SQLServerrn varchar2 varcharrn rn blob imagern2.函数的转换 rnrn ORACLE SQLServerrn to_char(readingdate,’yyyymm’) convert(char(6),readingdate,111)rn to_char(readingdate,’yyyy/mm’) convert(char(7),readingdate,112)rn decode( , , , ,) case when then end 或者 isnull(x,0)rn 左右连接 (+) left outer join rn nvl(field1,'') isnull(field1,'')rn 举例子如下:rnoracle:rn SELECT EFMFID, rn EFMMID, rn EFMNAME, rn EFMMETHOD, rn EFMUPPICT, rn EFMDNPICT, rn EFMCHECK, rn EFMVISIBLE, rn EFMHINT, rn EFMMICOHELP, rn EFMTBITEMINDEX, rn EFMTBITEMORDER, rn EFMTBITEMSPACE,rn DECODE(ORFMRID,NULL,'N','Y') FLAGrn FROM ERPFUNCMETHOD, rn (SELECT ORFMRID,ORFMFID,ORFMETHODrn FROM OPERRFMETHOD WHERE ORFMRID=:v_role)rn WHERE EFMFID=ORFMFID(+) AND EFMMID=ORFMETHOD(+) AND EFMFID=:v_funcrn ORDER BY EFMTBITEMORDERrn-----------------------------------rn<em>sqlserver</em>:rnSELECT A.EFMFID, rn A.EFMMID, rn A.EFMNAME, rn A.EFMMETHOD, rn A.EFMUPPICT, rn A.EFMDNPICT, rn A.EFMCHECK, rn A.EFMVISIBLE, rn A.EFMHINT, rn A.EFMMICOHELP, rn A.EFMTBITEMINDEX, rn A.EFMTBITEMORDER, rn A.EFMTBITEMSPACE,rn case IsNUll(B.ORFMRID,'*')rn when '*' then 'N'rn else 'Y'rn end FLAGrn FROM ERPFUNCMETHOD AS A rn LEFT OUTER JOIN rn (SELECT ORFMRID,ORFMFID,ORFMETHODrn FROM OPERRFMETHOD WHERE ORFMRID = :v_role ) AS BrnON A.EFMFID=B.ORFMFID AND A.EFMMID=B.ORFMETHOD rn WHERE A.EFMFID = :v_funcrn ORDER BY A.EFMTBITEMORDER;rn3. 数据窗口中的语法rn 在测试的过程会发现有一些数据窗口在 SqlServer不能用:修改方法是将字段的引号去掉rn4. 取服务器时间rnORACEL rn-------------------------------------------rndatetime ld_todayrndeclare cur cursor for select getdate();rnopen cur;rnfetch cur into :ld_today;rnclose cur;rnIF SQLCA.SQLCODE 0 THENrnMESSAGEBOX('错误信息', SQLCA.SQLERRTEXT)rnEND IFrnreturn ld_todayrn5.函数的转换rn 尽量不要使用select count(*),而由EXISTS 来代替rnORACEL rn-------------------------------------------rnCREATE OR REPLACE FUNCTION fChkRoleFuncrn (Vrole IN VARCHAR2,vcode IN VARCHAR2)rn Return IntegerrnASrn lpcode Integer;rnBEGINrn SELECT COUNT(*) INTO lpcode FROM operrolefuncrnWHERE orfrid=vrole AND orffid = vcode;rn Return lpcode;rnEXCEPTION WHEN OTHERS THENrn lpcode := 0;rn Return lpcode;rnEND;rnrnSQLSERVER:rn---------------------------------------------rnCREATE FUNCTION fChkRoleFuncrn (@Vrole VARCHAR(2), @vcode VARCHAR(10))rnReturns IntrnASrnBEGINrn DECLARE @lpcode IntrnIF EXISTS( SELECT * FROM operrolefunc WHERE orfrid=@vrole AND orffid = @vcode) rn set @lpcode = 1rnelsern set @lpcode = 0rn RETURN (@lpcode)rnENDrn
[原创]Oracle数据库转换到SqlServer的几点经验
应广大朋友的要求,本人将《PB-ORACLE通用开发框架2.1》版本的程序rn成功转换到SQLServer下,下面是我总结的几条经验,与大家分享,有不rn正确的地方,请批评指正。谢谢!kingfriend1111@163.comrnrn1.数据类型的转换 建立两个数据源basedb, basdb_sqlrn 为每个表,建立一个数据管道,修改部分字段类型 rn Oracle SQLServerrn varchar2 varcharrn rn blob imagern2.函数的转换 rnrn ORACLE SQLServerrn to_char(readingdate,’yyyymm’) convert(char(6),readingdate,111)rn to_char(readingdate,’yyyy/mm’) convert(char(7),readingdate,112)rn decode( , , , ,) case when then end 或者 isnull(x,0)rn 左右连接 (+) left outer join rn nvl(field1,'') isnull(field1,'')rn 举例子如下:rnoracle:rn SELECT EFMFID, rn EFMMID, rn EFMNAME, rn EFMMETHOD, rn EFMUPPICT, rn EFMDNPICT, rn EFMCHECK, rn EFMVISIBLE, rn EFMHINT, rn EFMMICOHELP, rn EFMTBITEMINDEX, rn EFMTBITEMORDER, rn EFMTBITEMSPACE,rn DECODE(ORFMRID,NULL,'N','Y') FLAGrn FROM ERPFUNCMETHOD, rn (SELECT ORFMRID,ORFMFID,ORFMETHODrn FROM OPERRFMETHOD WHERE ORFMRID=:v_role)rn WHERE EFMFID=ORFMFID(+) AND EFMMID=ORFMETHOD(+) AND EFMFID=:v_funcrn ORDER BY EFMTBITEMORDERrn-----------------------------------rn<em>sqlserver</em>:rnSELECT A.EFMFID, rn A.EFMMID, rn A.EFMNAME, rn A.EFMMETHOD, rn A.EFMUPPICT, rn A.EFMDNPICT, rn A.EFMCHECK, rn A.EFMVISIBLE, rn A.EFMHINT, rn A.EFMMICOHELP, rn A.EFMTBITEMINDEX, rn A.EFMTBITEMORDER, rn A.EFMTBITEMSPACE,rn case IsNUll(B.ORFMRID,'*')rn when '*' then 'N'rn else 'Y'rn end FLAGrn FROM ERPFUNCMETHOD AS A rn LEFT OUTER JOIN rn (SELECT ORFMRID,ORFMFID,ORFMETHODrn FROM OPERRFMETHOD WHERE ORFMRID = :v_role ) AS BrnON A.EFMFID=B.ORFMFID AND A.EFMMID=B.ORFMETHOD rn WHERE A.EFMFID = :v_funcrn ORDER BY A.EFMTBITEMORDER;rn3. 数据窗口中的语法rn 在测试的过程会发现有一些数据窗口在 SqlServer不能用:修改方法是将字段的引号去掉rn4. 取服务器时间rnORACEL rn-------------------------------------------rndatetime ld_todayrndeclare cur cursor for select getdate();rnopen cur;rnfetch cur into :ld_today;rnclose cur;rnIF SQLCA.SQLCODE 0 THENrnMESSAGEBOX('错误信息', SQLCA.SQLERRTEXT)rnEND IFrnreturn ld_todayrn5.函数的转换rn 尽量不要使用select count(*),而由EXISTS 来代替rnORACEL rn-------------------------------------------rnCREATE OR REPLACE FUNCTION fChkRoleFuncrn (Vrole IN VARCHAR2,vcode IN VARCHAR2)rn Return IntegerrnASrn lpcode Integer;rnBEGINrn SELECT COUNT(*) INTO lpcode FROM operrolefuncrnWHERE orfrid=vrole AND orffid = vcode;rn Return lpcode;rnEXCEPTION WHEN OTHERS THENrn lpcode := 0;rn Return lpcode;rnEND;rnrnSQLSERVER:rn---------------------------------------------rnCREATE FUNCTION fChkRoleFuncrn (@Vrole VARCHAR(2), @vcode VARCHAR(10))rnReturns IntrnASrnBEGINrn DECLARE @lpcode IntrnIF EXISTS( SELECT * FROM operrolefunc WHERE orfrid=@vrole AND orffid = @vcode) rn set @lpcode = 1rnelsern set @lpcode = 0rn RETURN (@lpcode)rnENDrn
XP下安装SQLSERVER企业版的一个新方法(原创
近日,因为参与一个项目开发,该项目要求只能用正版软件。在开发阶段,我们采用了windows xp和sql server 2000 eval 英文版。rnrnwindows xp pro (中和英文)均为正版,<em>sqlserver</em>2000 英文评估版,微软站点下载rnrn经过一段摸索和测试,将<em>sqlserver</em>2000 英文企业版安装成功rnrn首先,我对目前安装<em>sqlserver</em>2000企业版的最为流行的2个方案,做个总结rnrn1。ntswitch软件修改xp为.net server系统,这种方法对系统修改太多,有一定风险,切换之后,系统出现了异常,更遑论安装<em>sqlserver</em>rnrn2.先安装<em>sqlserver</em> enterprise 的msde,再安装客户端工具,个人感觉是在偷换概念,msde在各个<em>sqlserver</em>版本中完全一样,其实就是桌面版的<em>sqlserver</em>,给98用的,根本没有企业版应有的内在。安装这个没有意义,而且安装只能默认的安装到系统分区。不可以自定义安装。rnrn接下来,讨论一下xp可安装的<em>sqlserver</em> 版本,eval和个人版,其他版本安装提示,非server系统不可以安装。rnrn但是eval版本是120天试用版本,之后服务就中止。除非更改时间或者重新安装。rnrn再接下来我们想一下,解决问题的思路,检查了个版本<em>sqlserver</em>中的目录结构和分布,主要文件大致一样。也就是说,我只要让安装文件在检查系统的时候跳过检查系统的版本,就应该可以安装。那么检查系统版本的<em>sqlserver</em>安装文件,是哪一个呢。trace一下,在这里rnrn<em>sqlserver</em>安装包的根目录\x86\binn\setupex.dllrnrn删除或者更改文件名,从新安装提示缺少文件的错误,但是版本拒绝没有了rnrn那么既然只有这一个文件有问题。我可以用评估版本和个人版本的setupex.dll,去替换该文件,是否可以。rnrncome on 想到就做,成功了,我运行<em>sqlserver</em> enterprise的安装文件,没有任何提示,就进入到正常安装向导。不过有一个缺憾,因为我用的是eval,在安装向导的窗口的标题显示eval enterprise,抱着怀疑,我以自定义的方式安装好了<em>sqlserver</em>,我用<em>sqlserver</em> 的select @@version检查版本,显示<em>sqlserver</em> eval enterprise,有点失望,以为还是评估版本的。rnrn如何测试呢,很简单,我们把时间改到了,120天以后,甚至10年以后,重新启动计算机,发现<em>sqlserver</em>的服务依然正常启动,看来是没有问题了,如果是eval版本,那么<em>sqlserver</em>在更改系统时间120天之后,服务就会启动失败,在事件日志里提示已经过期。rnrn总结一下,我们只替换了<em>sqlserver</em> 2000 enterprise的一个文件,其他文件都保持不变的情况下,达到了目的,从风险和操作上来讲用了最小的代价,虽然在版本的显示提示还是eval(如果用个人版不知道是否会显示personal)。但从实际使用角度来说,我们已经享受到企业版的安装文件和设置。rnrn我在网络上去搜索解决问题的办法的时候,没有找到这种方式。或许已经有人用过此方法,而我没找到而已。rnrn把经验分享,希望大家能找到更晚完美的解决方案。因为我只有eval版本,个人版我没测试,有条件的朋友可以测试一下rnrn测试环境rnwindows xp pro 正版(中文,英文),rn<em>sqlserver</em>2000 eval 英文版本(可从微软网站下载)其实只要一个文件即可setupex.dll,rn<em>sqlserver</em> 2000 企业版英文版完全安装文件
ASP调用SqlServer存储过程的经典示例(原创)
ASP调用SqlServer存储过程的经典示例1、无输入参数,无返回值这种方式比较少见,但也是一种情况。ConnString="Dsn=DsnName;Uid=user;Pass=pass"Set Conn = Server.CreateObject("Adodb.Connection")Conn.Open ConnStringConn.Execute "ProcName"2、两个输入参数
GJM : 安装SqlServer遇到问题的解决方案 [原创]
感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手“推荐一下”吧!你的精神支持是博主强大的写作动力以及转载收藏动力。欢迎转载! 版权声明:本文<em>原创</em>发表于 【请点击连接前往】 ,未经作者同意必须保留此段声明!如有问题请联系我,侵立删,谢谢! 我的博客:http://www.cnblogs.com/GJM6/ - 传送门:【点击前往】 问题 1 ...
GJM :Unity 使用SqlServer数据库 [原创]
感谢您的阅读。喜欢的、有用的就请大哥大嫂们高抬贵手“推荐一下”吧!你的精神支持是博主强大的写作动力以及转载收藏动力。欢迎转载! 版权声明:本文<em>原创</em>,未经作者同意必须保留此段声明! 我的博客:http://www.cnblogs.com/GJM6/ - 传送门:【点击前往】 -- CREATE TABLE Test (ip text ,port ...
[原创]delphi连接远程sqlserver[code+exe]
演示了如何使用delphi连接远程<em>sqlserver</em>数据库,可以是因特网上的服务器。
sqlserver实现字段名与字段值交叉(原创)
注:仅适合数据量小的表 欢迎大家拍我吧.... 有表score id   name         city                  score ------------------------------------------------- 1     罗毅          重庆                80 2     小廖          杭州
一则 Oracle 和 SqlServer 语法区别 (原创)
Sql Server / Oracle--返回第一行数据SELECT TOP 1* FROMTableName / SELECT * FROM TableName WHERE ROWNUM=1--返回前五行数据SELECT TOP5* FROMTableName / SELECT * FROM TableName WHERE ROWNUM &lt;= 5--返回所有数据SELECT * ...
面向对象的陷阱——instanceof运算符的陷阱
1、instanceof运算符的<em>陷阱</em>        instanceof是一个非常简单的运算符。instanceof运算符的前一个操作数通常是一个引用类型的变量,后一个操作数通常是一个类(也可以是接口,可以把接口理解成一种特殊的类),它用于判断前面的对象是否是后面的类或其子类、实现类的实例。如果是,则返回true;否则,返回false。        根据Java语言规范,使用instance
Java表达式的陷阱——正则表达式的陷阱
5、正则表达式的<em>陷阱</em> public class StringSplit { public static void main(String[] args) { String str = "java.is.funny.hello.world"; String[] strArr = str.split("."); for ( String s : strArr ) { System
C陷阱与缺陷之语法陷阱
2.1理解函数声明 不论什么C变量的声明都由两部分组成:类型以及一组类似表达式的声明符号。比如 float f; 这个声明的含义是:当对其求值时,表达式f和g的类型为浮点数类。由于声 明符与表达式的相似。所以我们也能够在声明符中随意使用括号: float ((f)) 这个声明的含义是:当对其求值时,W)的类型为浮点类型,由此能够推知,f也是浮点类型。类似的。 ...
C陷阱与缺陷之词法陷阱
该文章及后续文章均为阅读《C<em>陷阱</em>和缺陷》后的读数笔记,方便以后回顾 C<em>陷阱</em>和缺陷电子版图书下载地址:点击打开链接 第一章词法<em>陷阱</em> 1.1 = 不同于 == 在C语言中,符号=作为赋值运算符,符号==作为比较运算符。一般而言,赋值运算相对比较运算出现得更频繁,因此字符数较少的符号=就被赋予更常用的含义——赋值操作。在编写程序的时候,注意不要将赋值操作写完比较相等的操作,也不要将比较操作写为赋值操作。 1.2 & 和 | 不同于 && 和 || 在C语言中,&和|为按位运算符,它们对操作数的处理方式是将其视
Java表达式的陷阱——多线程的陷阱
6、多线程的<em>陷阱</em>        Java语言提供了非常优秀的多线程支持,使得开发者能以简单的代码来创建、启动多线程,而且Java语言内置了多线程支持极好地简化了多线程编程。虽然如此,Java多线程编程中依然存在一些容易混淆的<em>陷阱</em>。 6、1 不要调用run()方法        从Java5开始,Java提供了三种方式来创建、启动多线程。 继承Thread类创建线程类,重写run()
面向对象的陷阱——native方法的陷阱
4、native方法的<em>陷阱</em>        在Java方法定义中有一类特殊的方法:native方法。对于native方法而言,Java程序不会为该方法提供实现体。 public class NativeTest { public native void info(); }       使用native修饰的方法就像一个“抽象方法”,只有方法签名,没有方法体。从这个意义上来说,native关键字
C缺陷与陷阱——词法陷阱
词法<em>陷阱</em>摘要术语符号(token)实例"-&gt;"与字符串"-&gt;"的区别=不同于== 摘要 从较低的层面考察,程序是由符号(token)序列组成的,将程序分解成符号的过程,称为词法分析。 这节主要分析在程序被词法分析器分解成各个符号的过程中可能出现的问题。 编译器中负责将程序分解成一个一个符号的部分,一般称之为词法分析器。 C语言中符号之间的空白(包括空格符,制表符和换行符)将被忽略。 术...
面向对象的陷阱——非静态内部类的陷阱
3、非静态内部类的<em>陷阱</em>        内部类是Java提供的一个常用语法。内部类能提供更好的封装,而且它可以直接访问外部类的private成员,因此在一个特殊场合下更常用。 3、1 非静态内部类的构造器 public class Outer { public static void main(String[] args) throws Exception { new Outer().t
原创】rootkit ring3进ring0之门系列[四] -- 陷阱
八篇关于保护模式的文章,今天总算告一段落了。:D: 言归正传。 今天我们学习<em>陷阱</em>门,先来看看理论部分。 1。异常来源: 1)处理器检测到程序错误产生异常。 在程序运行期间,检测到程序错误。被进一步分为:faluts(故障),traps(<em>陷阱</em>),aborts.(中止) 2)软件产生异常, int0 ,int 3, BOUND等指令在软件中产生异常。 3)机器检测异常,由处理器检查内部芯片
注册码陷阱圈套 注册码陷阱圈套 注册码陷阱圈套
注册码<em>陷阱</em>圈套注册码<em>陷阱</em>圈套注册码<em>陷阱</em>圈套注册码<em>陷阱</em>圈套注册码<em>陷阱</em>圈套注册码<em>陷阱</em>圈套注册码<em>陷阱</em>圈套注册码<em>陷阱</em>圈套
sscanf陷阱
sscanf使用的时候有一个<em>陷阱</em>,存入的数是32的,如果不到32位,会发生内存越界!
数据陷阱
这四组数据中,x值的平均数都是9.0,y值的平均数都是7.5;x值的方差都是10.0,y值的方差都是3.75;它们的相关度都是0.816,线性回归线都是y=3+0.5x。单从这些统计数字上看来,四组数据所反映出的实际情况非常相近,而事实上,这四组数据有着天壤之别。
ftok的陷阱
根据pathname指定的文件(或目录)名称,以及proj_id参数指定的数字,ftok函数为IPC对象生成一个唯一性的键值。在实际应用中,很容易产生的一个理解是,在proj_id相同的情况下,只要文件(或目录)名称不变,就可以确保ftok返回始终一致的键值。然而,这个理解并非完全正确,有可能给应用开发埋下很隐晦的<em>陷阱</em>。因为ftok的实现存在这样的风险,即在访问同一共享内存的多个进程先后调用fto
最值陷阱
考虑以下求浮点数最大值的代码,有什么问题?   #include void CalcMax() { double a[3] = {-2.2, -1.1, -3.3}; double maxValue = DBL_MIN; unsigned int i; for(i = 0; i < 3; ++i) { if(a[
DB2陷阱
1.在DB2的命令编辑器中查询完记录后,有时会习惯性的在查询结果列表中点击某条记录,这时DB2会将此表锁住。必须点击落实或者回滚后可以操作此表。
单例模式陷阱
http://www.blogjava.net/JavaExplore/archive/2006/08/26/65914.html  今天去jdon,看了它的设计研究栏目,bang有几篇评论单例模式的文章,声称“Singleton is evil”(见http://www.jdon.com/jive/article.jsp?forum=91&thread=17578),并且引用几篇外文页面佐
财务报表陷阱
财务报表中<em>陷阱</em>多多,投资者应该如何避免呢?在这里我将用投资者都能理解的语言为投资者介绍一下,尽量不涉及到很专业和难懂的术语: 1.市盈率<em>陷阱</em>现在几乎大多数投资者都已经知道了市盈率的概念,但大都是一知半解,很容易被庄家欺骗,其实对于市盈率的<em>陷阱</em>我在今年1月14日的文章中已详细介绍《看盘基本技巧系列连载(二)》中已经详细介绍,这里不再详细介绍,只举一个最近再度被庄家运用的例子,0009
浮点数陷阱
计算机
项目陷阱
做项目,对于程序员而言,到处是坑啊。。。 随便举几个例子:
Fragment的陷阱
以前做过的一个项目,Fragment嵌套高德地图,当再次进入Fragment的时候,会出现奇怪的现象。嵌套的地图会出现滑动不动的情况,起先还以为是高德的bug呢,经过一番研究,终确定这是一个坑。 一般很容易会被大家忽略了一个问题。那就是当和Fragment关联的view hierarchy正在被移除时,不会执行onDestroy()方法,而是会调用onDestroyView()。比如 Vie
ACE的陷阱
                             ACE的<em>陷阱</em>坦白说,使用这个标题无非是希望能够吸引你的眼球,这篇文章的目的仅仅是为了揭示一些ACE缺陷的。文章适合的读者是对ACE(ADAPTIVE Communication Environment)有一定研究,或者正在使用ACE从事项目开发的人士参考。如果你对C++还是新手,甚至包括ACE知识初学者,(但你想飞的更高),
CSS属性的陷阱
*{ vertical-align: middle; /*适用于img,input等非文本标签垂直对齐*/ text-align: center; /*适用于p,h等文本标签*/ }
128陷阱
public class test { public static void main(String[] args) { // TODO Auto-generated method stub Integer a = 127; Integer b = 127; Integer c = 128; Integer d = 128; System.out.println(...
数组陷阱
        由于需求变更,以前静态显示的值现在需要动态显示,用户能在配置文件或是在某些页面上面手工指定哪些东西需要显示,哪些需要隐藏。还有一个前提是,改后后设定了10个组件能显示,不过这也是考虑到页面到时候放不下而设置的,程序里面并没有做控制,既然是手工指定,那就应该能显示任意多个。背景介绍完毕。         刚开始被通知这方面需要改的时候,内心是崩溃的、反对的,因为前期代码写的不够灵...
默认参数的陷阱
def qqxing(k,l = {}): # l.append(1) l[k] = 'v' print(l) qqxing(1) #[1] qqxing(2) #[1,1] qqxing(3) #[1,1,1] # 如果默认参数的值是一个可变数据类型, # 那么每一次调用函数的时候, # 如果不传...
逗号表达式陷阱
逗号表达式<em>陷阱</em> Posted on 10/22/2012 | 被浏览了 214 次 以下程序会输出什么: #include using namespace std; int main(void) { int a = 1, b = 1, c; c = a++, b++, ++b; int d = (a, b++); printf
java程序陷阱
1、找奇数 在这个例子中在表面上是没什么问题的,但是很多程序会忽视负数的存在。因为在i%2这个表达式中如果i只要等于负数,程序就会将负数判断为奇数。 所以将表达式改为:i % 2 !=0 就不会出现这样的问题了。 转载于:https://www.cnblogs.com/luoSteel/p/5790348.html...
GC陷阱
都说C++的很容易内存泄漏,所以有了GC。有了GC,爸妈再也不用担心我的学习(J)。但是使用GC也有几个大<em>陷阱</em>要注意。   第一个是资源被一直引用。当然都是无意中造成(谁会存心这么做?拉出去突突了)。 常见的就是event的handler;有用+=,但是忘了-=。如果handler中有大量资源,而且不再被使用了,也会造成内存“泄露”。 还有就是一些static的引用,它们的生命周期一直到a
qt 陷阱
最近使用qt,掉进它里面种的很多<em>陷阱</em>。 在下面说明下,希望能帮助大家跳过<em>陷阱</em> 1. qt中的信号和槽 写了一个信号和槽的简单例子,跟网上的一模一样,编译时出现undefined reference to vtable for kkk 备注:肯定已经定义了Q_OBJECT宏 这个是跟qt creator的编译器有关。 解决方法有两个 第一种、将信号和槽文件exc
三目运算符的陷阱
三目运算符的<em>陷阱</em>
内存陷阱
char *Dosomething(){    char i[32*1024];    memset(i,0,32*1024);    ........   return i;} 两个重大问题:1. 临时变量通过堆栈实现的(M51除外),太大的临时变量数组会冲掉堆栈2. 返回堆栈中的地址是非常危险地。因为堆栈中的值在退出函数体后无法确定 关于临时变量
智能指针陷阱
智能指针可以提供对动态内存安全而又方便的管理,但这建立在正确使用的前提下。为了正确使用智能指针,我们必须坚持一些基本规范: 1.不使用相同的内置指针初始化(或reset)多个智能指针; 2.不delete get( )返回的指针; 3.不使用get( )初始化或reset另一个智能指针; 4.如果你使用get( )返回的指针,记住当最后一个对应的智能指针销毁后,你的指针就变为无效了; 5.
mysql陷阱
mysql本身没有full outer join 的形式,只能采用lefet outer join XX on xx union right outer join XX on 的做 变量的使用:select aSno,aSname ,aSgrade,SumAcredit,ayear,gSno,gSname,gSgrade,Sum_Grade , sumScore , gyear ,ranking
iterator的陷阱
比如某个std::vector,我们对它的一个实例对象进行遍历,找到一个元素,删除之:std::vector some_vector;for(std::vector::iterator it = some_vector.begin(); it != some_vector.end(); ++it){    if(...)    {       some_vector.erase(it);   //
NSTimer的陷阱
之前一直用NSTimer ,这两天再做性能优化的时候 发现了问题,用到NSTimer的ViewControll 一直没有释放. 后来追求原因发现了问题.
数据分析的陷阱
1.辛普森悖论 WIKI原始连接:http://zh.wikipedia.org/wiki/%E8%BE%9B%E6%99%AE%E6%A3%AE%E6%82%96%E8%AE%BA 当人们尝试探究两种变量(比如新生录取率与性别)是否具有相关性的时候,会分别对之进行分组研究。然而,在分组比较中都占优势的一方,在总评中有时反而是失势的一方。该现象于20世纪初就有人讨论,但一直到1951年
Ruby的陷阱
Ruby的<em>陷阱</em>,学习Ruby的可以下载看看
Bash的陷阱
版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/01/09/bash-pitfalls/以及本声明。google_ad_client = "pub-3705997236397030";//文章内容右侧广告google_ad_slot = "1819082211";google_ad_w
volatile的陷阱
最近写的关于在嵌入式开发中常遇到的关于volatile关键字使用的短文,都是些通用的技术,贴上来share。  对于volatile关键字,大部分的C语言教材都是一笔带过,并没有做太过深入的分析,所以这里简单整理了一些关于volatile的使用注意事项。实际上从语法上来看volatile和const是一样的,但是如果const用错,几乎不会有什么问题;而volatile用错,后果可能很严重。所以
atoi陷阱
字符串转换为数字,小心<em>陷阱</em>。 最常用的就是atoi函数,那么在Linux下执行下面函数 char *str = "123456789123456789123456789" atoi(str); 得到什么结果,肯定不是123456789123456789123456789!那么问题来了。 atoi 在Windows下使用,没什么问题。但是一移植到Linux下,问题就出来了,发现得到
java正则表达式陷阱
直接看代码:publicclass StringSplit{ publicstaticvoid mian(String [] args){ String str = "java.ix?sdcc.dddd"; //将这个字符串以点好(.)分隔成多个字符 String[] strArr = str.split(".");
for循环陷阱
for循环的个人理解
PHP的陷阱
PHP的<em>陷阱</em>写代码的时候有个疑惑,那就是数组下标不存在的时候就会挂掉Undefined Index XXXX请看下面的例子:$json_raw = "{\"data\":null}"; $data = json_decode($json_raw,true);$image_hash = $data['data']['image_hash'];// echo $image_hash . PHP_E
多态陷阱
(3)缺陷 1)“覆盖”私有方法 书上举的例子有点牵强,方法不算重写。 [java] view plain copy  print? public class TV{       private void show(){           System.out.println("TV");       }       publ
循环陷阱
var   i,j: Word; begin   j := 0;   for i :=0 to j -1 do     ShowMessage('无穷无尽,没有尽头。。。'); end;
C++陷阱
static还有全局变量只能定义一次,初始化一次。 static 只在调用第一次的时候初始化
JS闭包的陷阱
今天工作中遇到一个有意思的问题,花了很长时间,特记之。 这么一段Jquery代码: var vlist = ['case1', 'case2', 'case3']; for (var i=0; i&amp;lt;vlist.length; i++ ) { if ($(&quot;#&quot;+vlist[i]).css('display') != 'none') { $(&quot;#&quot;+vlist[i]).animate(...
自动装箱的陷阱
1.最近在看深入理解java虚拟机这本书中看到了这个知识点,感觉很不错,就记录一下。 包装类的 "=="运算在不遇到算数运算的情况下不会自动拆箱,以及它们的equals()方法不处理数据转型的关系。 @Test public void fn1() { Integer a = 1; Integer b = 2; Integer c = 3; ...
浮点数的陷阱
浮点数包括单精度和双精度。具体标准格式见IEEE 755.看一个浮点数<em>陷阱</em>:#include &lt;stdio.h&gt;int main(int argc, char *argv[]){ float i; for (i = 0; i != (float)10; i += 0.1) { printf("%.1f\n", i); }}run一下,就会发现,死循环!!!!wh...
盖莫游戏引擎2.1.1 part2下载
这是盖莫游戏引擎2.1.1part2部分 需要配合part1使用 part1地址 http://download.csdn.net/source/2257248 相关下载链接:[url=//download.csdn.net/download/ccsdu2004/2258139?utm_source=bbsseo]//download.csdn.net/download/ccsdu2004/2258139?utm_source=bbsseo[/url]
图书馆管理系统 vb下载
图书馆管理系统 vb 查询 录入 删除 适合初级人员的学习 相关下载链接:[url=//download.csdn.net/download/pengpeng1339/2680743?utm_source=bbsseo]//download.csdn.net/download/pengpeng1339/2680743?utm_source=bbsseo[/url]
socket数据发送下载
使用RAW Socket 发送数据,可以包含IP头。 相关下载链接:[url=//download.csdn.net/download/fanhao19940625/4216598?utm_source=bbsseo]//download.csdn.net/download/fanhao19940625/4216598?utm_source=bbsseo[/url]
我们是很有底线的