Linux作为一个免费的Unix类操作系统,以其开放性源代码、多任务、X window等特点为众多的用户所采用,并有很多企业采用Linux来作为其内部网的全功能服务器(WWW,FTP,Email、DNS)。企业的内部网不仅要提供文本信息的访问,还要能提供对企业关系数据库中的信息的访问。SQL Server以其低成本、性能高以及与NT的有效集成等特性为许多企业所采用,但Microsoft不提供其Unix下的客户端,为这类应用带来了困难。本文则提出了这一问题的解决方案。 

              安装Sybase客户端 

              首先从Microsoft SQL Server和Sybase SQL Server的关系说起。两公司曾共同开发OS/2上的数据库SQL Server for  OS/2,此后两公司又独立开发升级系统,Sybase的客户端可以访问Microsoft SQL Server。 
和其他数据库公司相比,可以说Sybase公司对Linux是最有善意的,它虽不提供Linux下的SQLServer,但提供了免费的CT-LIB的客户端,这也可能是许多IT管理人员在为公司数据库选型时不再考虑Oracle或Informix的理由之一。当然现在情况有所改变。 


Sybase公司发布的OpenClientforLinux是a.out格式的,在互联网上有人将其转化为ELF和动态链接的ELF格式,可从下列地址上寻找下载:http://www.mbay.net/~mpeppler。最好同时下载两个版本,正常使用时采用动态链接的版本,但有的程序在编译时可能需要一个库(libblk.a),只在ELF里面包含。 

              下载以后,键入如下命令展开(假设当前目录是/usr/tmp): 

              tarzxvflinuxelfdynamictar.gz 

              然后将其移至/usr/local目录: 

              mvsybase/usr/local 

              编译和使用Sybase客户端需要进行如下的设置: 

              1.Interface文件举例如下: 

              MSSQL 

              querytcpethermysql1433 

              其中: MSSQL是客户端使用的服务器名,以后引用MSSQL即可; 
mysql是服务器的地址或名字,如果是名字,则系统能够查到其IP地址; 
1433是SQLServer的端口号,MicrosoftSQLServer的缺省值是1433,Sybase是5000。 

              2.SYBASE环境变量,内容是Sybase客户端所在的目录: 

              ExportSYBASE=/usr/local/sybase 

              3.如果编译Sybase客户端中的例子,则还要设置环境变量SYBPLATFORM: 

              exportSYBPLATFORM=Linux 

              并且修改其头文件中关于服务器名称及用户名和口令的描述。 

              使用SQSH界面访问SQLServer 

              Sybase客户端提供了xisql工具,但更多的人使用的是SQSH,SQSH是SQshell的缩写,是改进了的isql,可从下列地址下载:http://www.voicenet.com/~gray/。当前的最新版本是1.6.0。假设下载后的文件放在/usr/tmp目录下: 

               然后,将生成的可执行文件sqsh安装到/usr/local/bin/目录下。 

  Sqsh的使用如下: 

  #sqsh--Uusername--Ppassword--Sservername 
其中username和password是用户名和口令,servername是在interface文件中定义的服务器名(如例子中的MSSQL)。 

  Sqsh是交互式的命令行界面,命令用输入go来执行,命令如果较长可直接分成几行书写,以回车换行即可。 

  如下是一个例子: 

  1>usepubs 
2>go 
1>select*fromauthors 
2>go采用CT-LIB编写应用程序 

  由于Sybase的Linux客户端不提供DB-Library,所以应采用CT-Library来编写应用程序,采用CT-Library编写应用程序可参考例子,详细的编程说明可以参考Sybase的说明。 

  利用Sybperl编写应用程序 

  Sybperl是Sybase的Perl扩展,可利用Perl语言来访问SQLServer,或者编写CGI程序。 

  Sybperl可从下列地址取得http://www.mbay.net/~mpeppler。当前的最新版本是2.9.5。 

  取得Sybperl的源代码展开以后,需要修改一下CONFIG文件,以下是几个参数: 

  下一个要修改的文件是PWD,这是用来进行测试的,将其中的服务器名、用户名、用户口令设置成自己的配置即可。然后进行编译: 

perlMakefile.PL 
make;maketest;makeinstall  

  安装成功以后,即可使用Sybperl进行编程。下面是一个简单的例子。 

#!/usr/bin/perl 
useSybase::CTlib; $dbh=newSybase::CTlib'sa','','MSSQL'; $dbh->ct_execute("selectau_id,au_lname, au_fnamefrompubs.dbo.authors"); 
while($dbh->ct_results($restype)==CS_SUCCEED){ 
nextunless$dbh->ct_fetchable($restype); 
while(($au_id,$au_lname,$au_fname)=$dbh->ct_fetch){ 
print"$au_id-$au_lnameau_fname\n"; 

}  

  可以看出,短短几行语句,就可以完成对数据库的操作。 

  以上从几个方面对在Linux下访问MSSQLServer数据库进行了说明,介绍了基本的API编程、SQSH命令行访问、Perl访问。其实,在Linux下还可采用其他方式进行访问,如采用第四级的JDBC进行访问,这时除了Java和JDBC外,并不需要其他软件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/92418.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/92418.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/92418.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机视觉-OpenCV

一下载第三方库opencv-python3.4.18.65opencv-contrib-python3.4.18.65import cv2 # 读取的格式是BGR numpy import numpy as np# 读取图片 a cv2.imread(generated_image.jpg) # 读取图片 print(a) # NumPy数组,其中存储了读取的图像文件的像素值。cv2.imshow…

解决GitHub无法打开

找到下图文件,用记事本打开 在最下方粘贴如下代码140.82.113.4 github.com 20.205.243.166 github.com 140.82.112.4 github.com 151.101.1.6 github.global.ssl.fastly.net 185.199.108.153 assets-cdn.github.com 185.199.109.153 assets-cdn.github.com 185.199.…

AWS VPC Transit Gateway 可观测最佳实践

AWS VPC Transit Gateway 介绍 Amazon VPC Transit Gateway 是一个网络传输中心,用于互连虚拟私有云 (VPCs) 和本地网络。随着您的云基础设施在全球扩展,区域间对等互连使用 AWS 全球基础设施将中转网关连接在一起。 AWS 数据中心之间的所有网络流量都在…

WeakRef的作用和使用

文章目录WeakRef的作用和使用使用 WeakRef 避免强引用:原理与实践一、WeakRef 的核心特性二、WeakRef 与强引用的对比三、WeakRef 的使用场景与示例1. 非关键数据缓存(避免缓存导致内存泄漏)2. 跟踪对象生命周期(不干扰回收&#…

【华为机试】332. 重新安排行程

文章目录332. 重新安排行程题目描述示例 1:示例 2:提示:解题思路核心思路算法流程图欧拉路径原理DFS回溯机制字典序优化策略复杂度分析算法实现要点完整题解代码332. 重新安排行程 题目描述 给你一份航线列表 tickets ,其中 tic…

通信算法之300:CRC表生成方式-CRC8、CRC16、CRC32-输入字节

"CRC表的MATLAB生成代码"生成的查找表可以用于快速计算 CRC 值,通过查表法可以显著提高 CRC 计算效率,尤其适用于需要处理大量数据的场景。下面是一个生成 CRC 查找表(CRC Table)的 MATLAB 代码,该代码可以根…

国内使用 npm 时配置镜像源

在国内使用 npm 时,由于网络限制可能会遇到下载速度慢或连接超时的问题。通过设置国内镜像源,可以显著提升下载速度和稳定性。以下是常用的国内 npm 镜像源及其配置方法。 查询当前使用的镜像源 npm get registry 设置为淘宝镜像源 npm config set reg…

一篇文章入门TCP与UDP(保姆级别)

🐳第一部分:什么是TCP和UDP? 先给结论:TCP 和 UDP 都是传输层协议,负责把数据从一台电脑 “搬” 到另一台电脑,但它们的 “搬运风格” 完全不同 📦 比喻:TCP 像 "打电话"&#xff…

2024年测绘程序设计比赛--空间探索性分析(数据为2025年第三次模拟数据)

想要在2026年参加这个比赛的&#xff0c;可以加入小编和其它大佬所建的群242845175一起来备赛&#xff0c;为2026年的比赛打基础&#xff0c;也可以私信小编&#xff0c;为你答疑解惑一、读写文件 internal class Read {public static List<Point> pts new List<Poin…

力扣 hot100 Day68

84. 柱状图中最大的矩形 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 class Solution { public:int largestRectangleArea(vector<int>&…

生成式AI时代,Data+AI下一代数智平台建设指南

DataAI下一代数智平台建设指南一、生成式AI时代的五大数据挑战二、驱动DataAI平台建设的核心要素主动选择&#xff1a;构建竞争壁垒被动应对&#xff1a;解决现有痛点三、DataAI平台的六大关键能力四、腾讯云DataAI产品方案与实践1. 数据与AI协同层2. 开发与治理层3. 存储与计算…

FPGA学习笔记——SPI通讯协议简介

目录 一、SPI通讯协议简介 二、SPI物理层 三、SPI协议层 1.通讯模式 &#xff08;一&#xff09;模式零 &#xff08;二&#xff09;模式一 &#xff08;三&#xff09;模式二 &#xff08;四&#xff09;模式三 2.通讯流程 一、SPI通讯协议简介 SPI&#xff08;Seria…

JavaScript核心概念解析:从基础语法到对象应用

导语&#xff1a;本文系统梳理JavaScript的核心知识框架&#xff0c;适用于编程入门学习者。内容涵盖基础语法、数据类型、函数应用及内置对象&#xff0c;帮助读者构建清晰的JS知识体系。一、语言基础与执行原理浏览器执行机制渲染引擎&#xff1a;解析HTML/CSS&#xff08;如…

在 Kotlin 中使用函数类型和 lambda 表达式

参考官方文档: https://developer.android.google.cn/codelabs/basic-android-kotlin-compose-function-types-and-lambda?hl=zh-cn#0 1、 将函数存储在变量中 作为一种一级结构,函数也属于数据类型,因此,可以将函数存储在变量中、将函数传递到函数,以及从函数返回函数…

计算机硬件组成原理

&#x1f9e0; 一、计算机的硬件组成&#xff1a;五大核心部件 根据“冯诺依曼体系结构”&#xff0c;现代计算机主要由这 5大部分组成&#xff1a;部件作用通俗解释1️⃣ 运算器&#xff08;ALU&#xff09;负责算术和逻辑运算会加减乘除和做判断的“计算工厂”2️⃣ 控制器&a…

告别 window.open,拥抱全新浮窗体验!

深入了解 Document Picture-in-Picture API&#xff0c;并对比 Modal 的最佳使用场景在前端开发中&#xff0c;我们经常会遇到这样的需求&#xff1a;弹出一个浮动窗口来显示一些实时信息、工具栏或视频内容。过去我们会用 window.open()&#xff0c;后来越来越多的开发者倾向于…

Python爬虫实战:研究weiboSpider技术,构建新浪微博数据采集系统

1. 引言 1.1 研究背景 在信息时代,社交媒体已成为人们获取信息、表达观点的重要渠道。微博作为其中的典型代表,拥有庞大的用户群体和活跃的内容生态。截至 2023 年底,微博月活跃用户数已超过 5.8 亿,日均发博量达数千万条,数据涵盖社会热点、公众情绪、消费偏好等多维度…

HashMap初始化容量为10,还未添加数据时,它的实际容量是多少?

在Java中&#xff0c;当使用 new HashMap<>(10) 初始化一个容量为10的 HashMap 但尚未添加任何数据时&#xff0c;其实际容量&#xff08;底层数组的长度&#xff09;不是10&#xff0c;而是16。原因如下&#xff1a;关键机制解析&#xff1a;容量必须是2的幂HashMap要求…

前端开发:CSS(2)—— 选择器

前面我们初步学习了CSS&#xff0c;对其有了基本的认识。下面我们来具体学习CSS中的选择器。 目录 选择器的种类 1.基础选择器 &#xff08;1&#xff09;标签选择器 &#xff08;2&#xff09;类选择器 &#xff08;3&#xff09;id选择器 &#xff08;4&#xff09;通…

人工智能2.0时代的人才培养和通识教育

目录引言&#xff1a;从"机器模仿"到"智能协同"的时代跨越一、人工智能2.0的技术演进&#xff1a;从规则到大模型的三次跃迁1. 人工智能0.0&#xff08;1956-2006&#xff09;&#xff1a;规则驱动的"专家系统时代"2. 人工智能1.0&#xff08;20…