SQL Server 2000的JDBC连接问题解决方法
经过好几天的奋战,JDBC终于成功连接了SQL Server 2000,期间走了不少弯路,在这里分享我的一点经验
一、我的环境
Windows XP+JDK6u15+Microsoft SQL Server 2000(SP4)+JCreator
我先在网上下载数据库驱动程序,目录下有三个包msbase.jar mssqlserver.jar msutil.jar
1、在命令行下编译运行,配置环境变量 将这三个包的路径加入CLASSPATH中
(我是直接将这3个包复制到E:\Java\lib\ext文件夹下,因为这是我的Java安装目录)
2、在JCreator中 配置 选项 JDK配置文件 编辑 添加存档路径 添加三个包
3、在Eclipse此中 选择项目的构建路径——库—— 添加外部JAR 将这三个添加进去
(2、3没试过,因为我一般添加额外的JAR文件包都是放入上面说的那个目录中的也就是classpath)
二、出现的问题及解决办法
1、是不是出现了Error establishing socket之类的错误 呵呵
这是因为连接数据库的1433端口没打开 我们必须要下载SP4的补丁
http://www.microsoft.com/downloads/details.aspx?FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5&DisplayLang=zh-cn
事实上我就是下载的SP4补丁,将
SQL2000.AS-KB884525-SP4-x86-CHS.EXE,
SQL2000.MSDE-KB884525-SP4-x86-CHS.EXE,
SQL2000-KB884525-SP4-x86-CHS.EXE
这3个文件全部下载,然后全部解压,最后运行setup.bat文件,就可以安装SP4补丁了。完了之后试试看程序,真OK了!
三、补充
写连接代码时需要注意2000和2005的不同:
1、连接SqlServer2000
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb";
2、连接SqlServer2005
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
URL = "jdbc:sqlserver://localhost:1433;DatabaseName=tempdb";  
相关文档:
http://blog.csdn.net/iamstillzhang/archive/2007/04/01/1548377.aspx
用mysql源码进行SQL解析
Mysql是通过yacc进行SQL语句解析的,这里介绍一下如何使用mysql的源码进行SQL语句解析。由于Mysql的源代码注释比较少,而且缺少资料,所有些地方研究不够深入。
1 Filed介绍
MY ......
create table #a
(
a int identity(1,1) primary key,
b int default(0) not null,
c nvarchar(20)
)
insert into #a(c)
select 'a' union all
select 'b' union all
select 'c' union all
select 'd' union all
select 'e'
select * from #a
alter table #a drop constraint DF__#a_____________b__12 ......
我们使用oracle的人都知道可以通过rownum伪列得到查询结果序列前面的指定的行,为了下面更好的进行说明问题,我们先来创建一个数据表table1:
create table table1
(AAA integer primary key,
BBB varchar(30));
然后在table1中插入9条数据:
insert into table1 values (8, 'good');
insert into table1 values (7 ......
联接条件可在 from 或 WHERE 子句中指定,建议在 from 子句中指定联接条件。WHERE 和 HAVING 子句也可以包含搜索条件,以进一步筛选联接条件所选的行。
联接可分为以下几类:   ......