怎么实现一个简单的数据库系统

怎么实现一个简单的数据库系统,第1张

第一步,你需要搭建一个开发环境,我以b/s中的asp为例,

web server:netbox,使用方便

语言:asp,入手容易

数据库:access,界面 *** 作,无需密码, *** 作简单。第二步,新建一个用户表,username char(20)password char(20)添加数据,admin mypassword第三步,新建登录界面,文件名 login.asp<div>

<form name="login" method="post" action="loginaction.asp" target="_top">

<table align="center" style="margin-top:30"><tr><td>请输入用户名</td>

<td><input type="text" name="userName" id="userName2" size="10" /></td></tr><tr><td>请输入密码 </td>

<td><input type="password" name="userPwd" id="userPwd2" size="10" /></td></tr><tr><td colspan="2" align="center"><input type="button" id="login2" value="登录" onClick="login2Check()" /></td></tr></table></form></div>新建loginaction.asp<!--#include file="conn.asp"--><%dim sql,userName,userPwd

userName=trim(request("userName"))

userPwd=trim(request("userPwd"))

if userName="maintain" then

sql="select userPwd from user_info where userId=2"

rs.Open sql,cn,1,1

asd=trim(rs("userPwd"))

if userPwd=asd then

session("name")=userName

response.Redirect("maintainance_personnel.asp")else%><script language="javascript">

alert("密码错误!")

window.location="index.asp"</script><%end ifrs.closeelse%>

<script language="javascript">

alert("用户名错误!")

window.location="index.asp"</script><%end if%>新建连接数据库文件conn.asp<%

set cn=Server.CreateObject("ADODB.Connection")

PowerBuilder是最常用的基于Windows *** 作系统的数据库前端开发工具之一,它通过不同的驱动程序连接不同的数据库,再通过

这种连接,实现对数据的管理。而基于Sco Unix的Informix-OnLine数据库因其具有高性能、高可靠性、支持数据完整性定义和检查等特性也被广泛应用。用PB和Informix-OnLine组合构建跨平台集成开发环境可以发挥PowerBuilder和Informix-OnLine各自的优势,充分利用Windows和Unix *** 作系统的特点,因此对于软件开发者和最终用户来说,是一个不错的选择。

下面以在客户端Windows *** 作系统上安装PowerBuilde 8和Informix-Cli,在服务器端SCO Unix 3.2上安装Informix-OnLine 7.23,建立口令为ccb的Informix用户,并以创建数据库atm为例详细介绍如何用PB和 Informix-OnLine构建跨平台集成开发环境。

配置Informix-OnLine

Informix-OnLine的配置涉及5个文件:/etc/hosts,

/etc/services, /usr/informix/etc/sqlhosts, /usr/informix/.profile,

/usr/informix/etc/onconfig.atm。

1.修改Unix系统中的TCP/IP连接文件:/etc/hosts和/etc/services。

hosts中存放机器名和IP地址的对应关系,网络上每台使用Informix-OnLine的计算机,都必须在此文件中加入一行,包括IP地址、主机名和主机别名三个域,其中主机别名为可选域,例中加入一台客户机(hbfcli)和服务器(atmserver),在hosts中体现为两行(主机别名域未用):

74.64.44.8 atmserver

74.64.191.170 hbfcli

2.修改/etc/services。

services文件中每一行为一个服务,包括服务名、端口号/协议、别名三个域,其中别名为可选域。服务名和端口号是任意的,但在文件中必须是惟一的,而且在网络上每台使用本Informix-OnLine的计算机上都必须相同。本例中加入如下一行:

sqlexec 6666/tcp

3.修改/usr/informix/etc/sqlhosts。

sqlhosts文件包含你提供的让客户应用查找,并连接到网络上任意地方的Informix-OnLine服务器的信息。该文件必须包含一行(一个登录项),包括五个域:数据库服务器名、网络类型、主机名、服务名和选项域。

数据库服务器名(dbservername)和Onconfig文件(本例为onconfig.atm)中的DBServerName或DBServerAliases相同。网络类型域描述在客户应用和数据库服务器之间的接口/协议组合类型,由三个子域共八位组成: 前两个字母代表数据库服务器产品,中间三个字母代表界面接口,最后三个字母代表网络协议(或IPC机制),例如“on”代表数据库服务器为OnLine,“tli”代表界面接口为传输级接口,“tcp”代表网络协议为TCP/IP协议。当网络协议(或IPC机制)为共享内存(shm)或数据流管道(str)通信时,主机名域必须是实际运行OnLine的计算机主机名。本例中网络协议为TCP/IP, 该域应作为/etc/hosts文件的键,给出的计算机网络地址,应与/etc/hosts文件中的主机名域相对应,故本例中应为atmserver。服务名域的解释取决于网络类型中规定的连接类型,当网络协议(或IPC机制)为共享内存(shm)或数据流管道(str)通信时,OnLine内部使用服务名域的值,此时可使用任何惟一的短字母组。本例中网络协议为TCP/IP, 该域应为/etc/services文件中的服务名域,故本例中应为sqlexec,选项域在指定连接中提供额外的灵活性,本例中未用。

atmpos_a ontlitcp atmserversqlexec

4.修改/usr/informix/.profile。

在.profile文件中,要设置Informix-OnLine服务器所必需的四个环境参数: InformixDirOnConfig、InformixServer和Path。本例中设置如下:

InformixDir =/usr/informix

OnConfig =onconfig.atm

InformixServe=atmpos

Path =$HOME/bin:$INFORMIXDIR/bin:.

5.修改/usr/Informix/etc/onconfig.atm。

onconfig.atm文件为.profile文件中设置的OnConfig环境参数,onconfig.atm文件中的DBServerName或DBServerAliases必须与sqlhosts文件中的数据库服务器名(dbservername)相同。本例中DBServerAliases与sqlhosts文件中的数据库服务器名相同,为atmpos_a。

DBSERVERNAME atmpos

DBSERVERALIASES atmpos_a

配置客户端Informix-Cli

1.修改Windows系统中的TCP/IP连接文件:c:\ windows\ hosts和c:\ windows\ services。Windows 2000中这两个文件在c:\ WINNT\ system32\ drivers\ etc目录下。这两个连接文件的作用、使用方法及内容分别与服务器端的/etc/hosts和/etc/services相同。

在c:\ windows\ hosts中加入如下两行:

74.64.44.8 atmserver

74.64.191.170 hbfcli

在c:\ windows\ services中加入如下一行:

sqlexec 6666/tcp

2. 选“开始→程序→informix-cli32→Informix SetNet32”中的ServerInformation项,各文本框参数对应如下:

InformixServer atmpos

HostName atmserver

Protocalname onsoctcp

ServiceName sqlexec

InformixServer与 onconfig.atm文件中的DBServerName或DBServerAliases一致。HostName与“c:\ windows\ hosts”文件中的服务器(atmserver)一行对应,也可直接使用IP地址74.64.44.8。ServiceName与“c:\ windows\ services”中加入的服务相同。各参数全部输入完毕后按“Make Default Server”按钮。

3.选“开始→程序→informix-cli32→Informix SetNet32”中的HostInformation项,各文本框参数对应如下:

CurrentHost atmserver

UserName informix

PasswdOption passwd

Passwd ccb

CurrentHost自动获取 ServerInformation项中InformixServer的值。UserName为在服务器端能使用Informix-OnLine数据库的用户。PasswdOption用下拉框选择需要口令。Passwd输入服务器端informix用户的口令。

3. 选择“开始→程序→informix-cli32→Iogin32Demo”的File菜单中的Run菜单项, 改StoreDatabase文本框内容为atm后按“确定”。若出现“Customer Records Found”对话框,且未报错,则客户端的Informix-Cli和服务器端的Informix-OnLine连接成功。

配置PowerBuilder

下面完成客户端PowerBuilder的配置工作。

1. 配置ODBC数据源

Informix数据库既可以通过ODBC连接,也可以通过专用接口连接,本文介绍ODBC连接方式。

打开Windows控制面板,双击“ODBC数据源”,在“ODBC数据源管理器”对话框中创建用户DSN。单击“添加”按钮,打开“创建数据源”对话框。选择驱动程序Informix-CLI2.5(32 bits),再通过向导打开“ODBC INFORMIX7.2 Driver Setup”对话框,输入“数据源名”为atmdsn,“数据库名”为atm。

2. 创建数据库描述文件。

在PowerBuilde 8中,通过ODBC连接到数据库需要经过两个步骤: 创建数据源和创建数据库描述文件。

在创建数据库后,启动PowerBuilde 8后,单击“DBProf”按钮,打开“Database Profiles”对话框,单击“ODB ODBC”图标,然后单击“New”按钮,打开“Database Profile Setup-ODBC”对话框。在“Connection”选项卡的“Profile Name”文本框中输入数据库描述文件的名字为atmpro,在数据源下拉列表框中选上一步创建的数据源atmdsn,在“User ID”和“Password”文本框中分别输入连接数据库时的用户标识Informix和密码ccb。

然后单击“Preview”选项卡,就可以预览所创建的数据库描述文件,即按照数据库描述文件的语法格式显示通过这些对话框的各个选项卡所设置的相关参数。单击其中的“Test Connection”按钮可测试所建立的连接。单击其中的“Copy”按钮可将其中的数据库描述文件复制到剪切板上。若复制到应用中,并加上connect语句,就可实现以程序方式与数据库连接。

数据库描述文件创建完成后,在“Database Profile”对话框中,选择“ODB ODBC”文件夹下新创建的数据库描述文件atmpro,然后单击“Connect”按钮,即可连接到服务器端Unix平台的Informix-Online数据库服务器的数据库atm上。

方法/步骤

1

1、下载

Linux 下的 Oracle Instant Client 有rpm包和zip包两种,下载任意一种即可,这里以下载的 zip

包为例,下载rpm包的安装见 Oracle Instant Client rpm包安装

instantclient-basic-linux.x64-11.2.0.3.0.zip

instantclient-sqlplus-linux.x64-11.2.0.3.0.zip

instantclient-sdk-linux.x64-11.2.0.3.0.zip

instantclient-precomp-linux.x64-11.2.0.3.0.zip

2、解压安装unzip

instantclient-basic-linux.x64-11.2.0.3.0.zipunzip

instantclient-sqlplus-linux.x64-11.2.0.3.0.zipunzip

instantclient-sdk-linux.x64-11.2.0.3.0.zipunzip

instantclient-precomp-linux.x64-11.2.0.3.0.zip

文件被解压到目录instantclient_11_2下

3、创建数据库连接文件在instantclient_11_2目录下创建

network/admin目录,使用命令mkdir -p

network/admin,并在admin目录下创建tnsnames.ora文件,文件内容类似如下:XXX = (DESCRIPTION

=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =

192.168.0.10)(PORT = 1521))) (CONNECT_DATA =

(SERVICE_NAME = orcl)) )

4、配置环境变量这里配置 root 用户环境变量:

~/.bash_profileexport ORACLE_HOME=/oracle/instantclient_11_2

export PROC=$ORACLE_HOME/sdkexport PATH=$PATH:$ORACLE_HOME:$PROC

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:$ORACLE_HOMEexport

LIBRARY_PATH=$LIBRARY_PATH:/usr/lib:$ORACLE_HOME

注意要配置LD_LIBRARY_PATH变量,sqlplus等程序运行时需要加载相应库,若不配置,则运行时会出现错误配置完毕后 source

~/.bash_profile

5、sqlplus测试[centos@localhost soft]$ sqlplus

/nologSQL*Plus: Release 11.2.0.1.0 Production on 星期二 1月 10 11:14:31

2012Copyright (c) 1982, 2009, Oracle. All rights reserved.SQL>conn

scott/tiger@XXX

已连接SQL>

6、proc测试

测试代码:

#include <stdio>

exec sql include sqlca

int main(void) {

exec sql begin declare section

char userpwd[30] = "scott/tiger@XXX"

char curdate[20] = {0}

exec sql enddeclare section

exec sql connect:userpwd

if(sqlca.sqlcode == 0) {

fprintf(stderr, "connect to database success!\n")

}

else {

fprintf(stderr, "connect to database failed! error:%s\n", sqlca.sqlerrm.sqlerrmc)

return -1

}

exec sql select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') into:curdate from dual

fprintf(stderr, "%s", curdate)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9911880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存