转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
最近一段时间都在弄sybase和ms-sqlserver,写了一份学习笔记         ★★★★

最近一段时间都在弄sybase和ms-sqlserver,写了一份学习笔记

作者:闵涛 文章来源:闵涛的学习笔记 点击数:4203 更新时间:2009/4/22 23:09:38
 Text 
 --------------- 
               1 
(1 row affected)
 text                                                                                                                                                                                                                                                            
----------------------------------------------------------------------------------------------------------------------
 create procedure p_convert_num_to_char 
@cint numeric, @outchar varchar(10) output 
as 
if (@cint=4)
   select @ouhr=''Fu''''
if (@cint=5)
   select @ouhr=''Fv''''
if (@cint=6)
   select @ouhr=''i''''   
(1 row affected)
(return status = 0)

18、 oracle中查看源码,查看该sources表
19、 在一个过程中调用另外一个过程,
例如:
create procedure test_one @test_proc_name varchar(255)
as exec @test_proc_name
20、 记住在sybase中行l'''go'不''''''为结束兼执行
21、 创建数据库用户:sa用户 master库中,sp_addlogin user,password,dbname
22、 变更数据属主::sa用户进入要变更的数据库执行 sp_changedbowner user,dbname
23、 设置用户的默认登陆数据库::sa用户进入要设定的数据库执行:
sp_defaultdb user,dbname
24、 以#开头返牧偈北碇皇窃谀骋还袒騭ql操作中存在,一旦过程或sql操作结束,则临时表就不存在了,如果再要访问就回出错。解决是不建立以#为preffix的表。
25、 要想直接手工插入值到表中identity字段,需要打开该表的identity_insert选项。
Set identity_insert 表名 on/off
如:
set identity_insert t_dns_rezo_gs on
这样insert into t_dns_rezo_gs(rzgs_id,rzgs_name) value99'''22'''')才会成功。
26、 指定某个过程什么时候执行后用waitfor delay "hh24:mi:ss",并且用了这种方式后该connection不会有什么响应直到过程被执行完成。
如半个小时后执行过程test_p
begin
waitfor delay "0:30:00"
    exec test_p
end 
27、 调用带返回参数的过程完整例子
create procedure p_convert_num_to_char 
@cint numeric, @outchar varchar(10) output 
as 
if (@cint=4)
   select @ouhr=''Fu''''
if (@cint=5)
   select @ouhr=''Fv''''
if (@cint=6)
   select @ouhr=''i''''   
go

declare @getchar varchar(10) 
exec p_convert_num_to_char 4,@outchar=@getchar output
28、 过程中有返回参数时,如果预先设定参数值,最终都会改变
如:
declare @First int
select @First=123
exec test_p @second=@First output
//运行结果为999
则@second和@First 都为999
29、 过程名改名sp_rename oldname, newName
30、 ct-library编程,在sybase提供的linux中有,环境搭建要点,要确定$SYBASE设定了,$SYBASE_OCS设定open client所在目录即可不要是全目录,还要设定平台$SYBPLATFORM=linux; 具有这三个环境变量,open client提供的sample才可大部分编译通过;其中有几个程序由于找不到-lsrv,而编译通不过。推测可能涉及了open server的东西,所以没有通过。
例子程序可以单独编译,如make 例子名 &np;   [F.E   make firstapp
 ]
设定LD_LIBRARY_PATH=$ATH=$SYBASE/$SYBASE_OCS/lib

编译形式例如firstapp.c
$SYBASE=/opt/sybase-12.5
$SYBASE_OCS= OCS-12_5
cc -o fist firstapp.c -I. -I/opt/sybase-12.5/OCS-12_5/include -L/opt/sybase-12.5/OCS-12_5/lib -rdynamic -ldl -lnsl -lm  -lct -lcs -lsybtcl -lcomn -lintl
31、 db-library编译语句:
cc  -I. -I/opt/sybase-12.5/OCS/include example1.c /opt/sybase-12.5/OCS/lib/libsybdb.a -lm -o example1
   同样要设好SYBASE SYBASE_OCS SYBPLATFORM
   并且要保证interface文件中连接服务器是对的。
   同时对于想要连接的服务器名要在环境变量DSQUERY中设好。
  如:
  export DSQUERY=accunetsvr

  注意,用hostname作为连接名时,确保/etc/hosts中的IP和hostname有对应且对应正确。

32、 db-library 经实验数据库连接结构支持线程间的传递,将函数打包用下列样式:
gcc -c -I. -I/opt/sybase-12.5/OCS/include s_fcts.c
ar r libleon.a s_fcts.o
rm -rf *.o
打包完毕
调用函数进行编译样式:
cc -I. -I/opt/sybase-12.5/OCS/include ss_nip_checkUGandUser.c libleon.a
         /opt/sybase-12.5/OCS/lib/libsybdb.a -lm -o leon4 
或者
cc  -I. -I/opt/sybase-12.5/OCS/include -o leon4 ss_nip_checkUGandUser.c libleon.a
 /opt/sybase-12.5/OCS/lib/libsybdb.a  -lm
33、 DB-library的应用程序运行其他机上访问另一台机(数据库所在的机器).在客户机上需要装sybase-comom 和syabse-openclient组件。需要设定对SYBASE / DSQUERY. 其中sybase要设定为指向interfaces文件的路径,DSQUERY要设定为要远程访问的主机名(adapative_server_name).将远程主机的interfaces拷贝到客户机上SYBASE指定的目录即可。注意如果没有设定DSQUERY,则程序默认去找sybase的数据库,这时如果没有该数据库名字在interfaces文件中,程序就会不行。
   [实际只需设定好DSQUERY环境变量和interface文件即可]
34、 DB-library应用在多线程中每次都要重新连接数据库,否则一定时间后连接会被操作系统重置掉。  Connection reset by peer
35、 DB-library的错误捕捉。系统提供一种系统错误信息函数自动在出现错误时去捕捉显示错误信息。
   int msg_handler(dbproc, msgno, msgstate, severity, msgtext, 
                srvname, procname, line)
DBPROCESS       *dbproc;
DBINT           msgno;
int             msgstate;
int             severity;
char            *msgtext;
char            *srvname;
char            *procname;
int      line; 
{};
int err_handler(dbproc, severity, dberr, oserr, dberrstr, oserrstr)
DBPROCESS       *dbproc;
int             severity;
int             dberr;
int             oserr;
char            *dberrstr;
char            *oserrstr;
{};

  dbmsghandle(msg_handler); 
dberrhandle(err_handler);

除此之外,用户如果想要自己控制错误信息可在dbsqlexec() 调用后并且while()处理完后,调用dbcount(dbproc)进行错误信息判断,如果等于-1则出现错误。特例调用没有select的过程::dbnocount设为on::没有select的sql语句::sql写错::sql执行错误等都可以出现-1所以要小心判断处理。
36、 Jdbc连接sybase。首先需要jconn2.jar和jTDS2.jar文件,在环境变量CLASSPATH设定好。
Class.forName("com.sybase.jdbc2.jdbc.SybDriver");
url结构为: jdbc:sybase:Tds:dbserver_ip/dbserver_hostname:dbserver_port/dbname
dbserver的端口为数据库服务器上的interfaces文件中对应的数据库端口。
例子:
192.168.0.6
interfaces
[root@accunetsvr sybase-12.5]# more interfaces 
accunetsvr_text
        master tcp ether accunetsvr 4500
        query tcp ether accunetsvr 4500


accunetsvr
        master tcp ether accunetsvr 4100
        query tcp ether accunetsvr 4100


accunetsvr_back
        master tcp ether accunetsvr 4200
        query tcp ether accunetsvr 4200


accunetsvr_mon
        master tcp ether accunetsvr 4300
        query tcp ether accunetsvr 4300


ACCUNETSVR_XP
        master tcp ether accunetsvr 4400
        query tcp ether&

上一页  [1] [2] [3] [4] [5]  下一页


[其他]手工升级ACCESS到SQLSERVER方法详解  [Web开发]asp+sqlserver 分页方法(不用存储过程)
[C语言系列]应用 SQLServer 链接服务器访问远程 Access 数据库  [C语言系列]如何在Jbuilder9中使用SQLServer JDBC驱动
[C语言系列]java与sqlserver2000的连接(最终版)!  [C语言系列]一个简单的jsp连接sqlserver数据库的小实例
[Web开发]ADO中sqlserver存储过程使用  [其他]Odbc连SQLServer数据库的几种方法
[其他]使用ADO连接到防火墙后的SQLServer  [ORACLE]系统从oracle版本转化为sqlserver版本
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台