当前位置:首页 » 操作系统 » informix数据库连接

informix数据库连接

发布时间: 2023-05-23 06:14:23

1. 求助,informix客户端连接数据库,报密码错误

1,在ASPX页面上拖两个TextBox,一个用于输入用户名,一个用于输入密码。还有一个Button,给这个Button的Click事件添加判断用户名,密码是否正确的功能,具体见2
2,从页面获取到用户名和密码,在数据库的表中,查找用户名为你输入用户名的记录,如果没有查到,提示枯嫌“用户名不存在”。如果查找到记录,取出记录对应的用户名和密码信息,比较查寻出来的密码和输入的密码是否一致,不一致,提示“密码错误”。如果密码也正确,你可以显示登录成没吵手功,或者是跳转到其他一些有用的页面。碰让

2. 如何远程连接informix数据库 怎样配置

Class.forName("com.informix.jdbc.IfxDriver");
conn = DriverManager.getConnection("jdbc:informix-sqli://IP:port/database:informixserver=server", "user", "password");
IP:你要连接数据库的IP地址
port:你要连接数据库的端口号
database:你要连接数据衡配库的库名
server:你要连接数据库的server
user:你要连接数据库的用户名
password:你要连接咐丛指数据库的郑巧密码

stmt = conn.createStatement();
rs = stmt.executeQuery("select a from b"); //你要执行的sql语句
while(rs.next()){
System.out.println(rs.getString("a")); //输出结果
}
连接之前需要导入ifxjdbc.jar这个包,异常就用eclipse自动抛吧

3. python调用dbaccess连接informix数据库

使用informixdb库,如下是快速穗宽示例:

>>> import informixdb
>>> conn = informixdb.connect('弊液mydatabase')
>>> cursor = conn.cursor()
>>> cursor.execute("SELECT * FROM names")
>>> cursor.fetchall()
[('donald', 'ck'租族物, 34), ('mickey', 'mouse', 23)]

4. .net vs怎么连接Informix数据库

在使用 ADO.NET 驱动程序之前,应该确保该驱动程序已安装并能正确运行。该驱动程序的当前版本可以使用 Informix Client Software Developer's Kit (SDK) 2.90 来安装。与以前的 2.81 版本不同,此 SDK 版本包括默认的 ADO.NET 驱动程序。SDK 的安装程序也会警告您有关事项。它并不真正在您的计算机上查找 .NET 框架的安装,只是警告您必须在安装 SDK 之前安装好 .NET 框架。如果您已经安装了 2.81 SDK,那么最好先卸载它。这两个版本无法共存。还要认识到的一点是,在将 2.90 ADO.NET 驱动程序添加到 Visual Studio Projects 中时,它会不正确地报告它自己是版本 2.81。

2.9 版本是在 2.81 版本之上的一次重要升级。它包括一个新岁洞的 IfxDataAdapter 向导、IPv6 支持和一些用于 Informix 数据类型(IfxDateTime、IfxDecimal、IfxBlob 和 IfxClob)的新类。该文档更为完善,内容总量是以前的两倍。

要点:IBM Informix ADO.NET 驱动程序并不仅仅包含在安装目录下的 /bin 目录下的 IBM.Data.Informix.dll 文件中。显然,它使用了由 SDK 安装的其他客户端代码。这意味着您必须在所有将使用 ADO.NET 驱动程序的机器上安装 Informix Client SDK。您不能只在您的发行版中包括 IBM.Data.Informix.dll。这对一些应用程序而言可能是一个严重的限制。您还需要仔细检查 SDK 安装程序 (SetNet32),以定义 Informix 数据源。

在将 ADO.NET 驱动程序用于连接之前,还必须运行一个叫做 cdotnet.sql 的存储稿蠢过程。这个存储过程位于 SDK 安装的 /etc 目录中。这类似于设置 OLEDB 驱动程序的过程,尽管这个过程更短一些。这个过程记录在 User's Guide 中。(请参阅下面的参考资料部分。)

在完成安装之后,检查一下驱动程序,确保建立了连接。要在 Visual Studio 项目中使用 ADO.NET 驱动程序,则必须确保已将一个引用添加到客户端 SDK 安装的 /bin 目录中找到的 IBM.Data.Informix.dll 中。正确的using语句是:using IBM.Data.Informix。以下是一个演示如何获得到数据库的连接的简单方法:

清单1.到Informix数据库的连接
publicvoidMakeConnection(){stringConnectionString="Host="+HOST+";"+"Service="+SERVICENUM+";"+"Server="+SERVER+";"+"Database="+DATABASE+";"+"Userid="+USER+";"+"Password="+PASSWORD+";";//,DB_LOCALEetc//FulllistinClientSDK's.NetProviderReferenceGuidep3:13IfxConnectionconn=newIfxConnection();conn.ConnectionString=ConnectionString;try{conn.Open();Console.WriteLine("Madeconnection!");Console.ReadLine();}catch(IfxExceptionex){Console.WriteLine("Problemwithconnectionattempt:"+ex.Message);}}

示例代码中包括一个用于此功能的BasicConnection类。如您所见,ConnectionString只是一个用于连接的分号分隔的参数列表。Open()方法打开了到数据库的连接,如果连接失败,则抛出一个IfxException。IfxException.Message属性通常提供关于失败原因的合理数量的详细信息

基本命令

一旦建立了连接,就可以开始对数据库执行命令。要做到这一点键雀陪,需要使用IfxCommand对象。IfxCommand的构造函数接收一个字符串(SQL 命令文本)和一个IfxConnection作为参数。IfxCommand对象有一系列的Execute方法,以便对数据库执行命令。要清除连接,可以使用IfxConnection.Close()方法。以下是执行某个不返回结果集的简单命令的例子。该命令可能是 insert、update 或 delete。

清单2.执行insert、update或delete命令
IfxCommandcmd;cmd=newIfxCommand("insertintotestvalues(1,2,'ABC')",conn);cmd.CommandTimeout=200;//{introws=cmd.ExecuteNonQuery();}catch(IfxExceptionex){Console.WriteLine("Error"+ex.Message);}

ExecuteNonQuery以整数形式返回受命令影响的行数。您还可以构建参数化语句和查询,后面部分将对它们进行研究。注意IfxCommand的CommandTimeout属性。默认超时时间是 30 秒,尽管在文档中没有对此进行说明。除非更改此属性,否则运行 30 秒后,命令就会超时,并且将抛出一个异常。

下一个例子是执行一条 select 语句,并处理由数据库服务器返回的结果集。对于快速的、只向前通过结果的游标,可以使用由ExecuteReader方法返回的IfxDataReader。不过,每个IfxConnection只可以有一个打开的IfxDataReader。(这是一条 ADO.NET 限制,不是 Informix ADO.NET 驱动程序的特定限制。)

清单3.迭代通过IfxDataReader
IfxCommandcmd=newIfxCommand("select*fromtest",bconn.conn);try{IfxDataReaderdr=cmd.ExecuteReader();while(dr.Read()){inta=dr.GetInt32(0);intb=Convert.ToInt32(dr["b"]);stringc=(String)dr[2];}dr.Close();}catch(IfxExceptionex){Console.WriteLine("Error"+ex.Message);}

每一列都被作为一般的 Object 类型进行检索。正如代码所演示的,存在一些将列 Objects 转换为正确数据类型的方法。您可以使用IfxDataReader的GetXxx方法。对于每种数据类型,几乎都有相应的方法。GetXxx方法将列数目作为一个参数。可以使用IfxDataReader的索引,通过列的名称来访问列。如果可能的话,.NET 框架的Convert函数可以将这些 Objects 转换为正确的类型。最后,可以根据列编号为这些列建立索引,并直接强制转换结果(对于某些类型)。

下一个例子将展示如何调用需要一个参数值的存储过程。

清单4.执行带有一个参数的存储过程
IfxCommandcmd=newIfxCommand("test_proc",conn);cmd.CommandType=CommandType.StoredProcere;//fromSystem.Datacmd.Parameters.Add("in_parameter",2);//manywaystocreatethesetry{cmd.ExecuteScalar();}catch(IfxExceptionifxe){Console.WriteLine("Error"+ifxe.Message);}

对于此IfxCommand,必须将CommandType设置为来自System.Data中的CommandType枚举的StoredProcere值。为了创建参数,可以使用IfxCommand的Parameters.Add方法。IfxCommands.Parameters是一个集合,因此您可以添加您所需数量的参数。您可以使用任意IfxParameter()构造函数来创建参数,或者可以像上面这样简化参数的创建。不过要注意的是,每个IfxParameter都与一个特定的IfxCommand相关。您不能先创建IfxParameters,然后在多个IfxCommand对象中使用它们。ExecuteScalar()方法现在只返回 1。这一示例没有从存储过程返回任何东西。

要构建一个不执行存储过程的参数化 SQL 语句,需要将问号作为占位符插入CommandText中。例如:

清单5.参数化查询
IfxCommandinsCmd=newIfxCommand("insertintoclientstest"+"(clientcode,clientacctname,primarycontact,primaddrcode,"+"initialamt,createdate)values(0,?,?,?,?,TODAY)",conn);

按照IfxParameter对象在命令文本中的顺序,将这些对象添加到IfxCommand的Parameters集合中。在下面的扩展示例中的最终强类型化DataSets中,将进一步演示此技术。

强类型数据集

ADO.NET 包括一个叫做DataSet的专用数据库对象。它是一个内存数据库。DataSet由一个或多个(由一些DataRow对象的)DataTable对象组成。DataTable可以通过主键和外键相关联。可以对数据设置一些约束。DataSet也与实际的数据存储断开连接,可以通过一个或多个DataAdapter(每个DataTable一个)来填充它,然后在内存中保存这些数据和所有更改。稍后,DataAdapter可以将这些更改提交回数据存储。

基本的DataSet不是强类型的。它不知道数据库的实际行和列是什么。因此编译器没有检查这些列名称。直到运行的时候,列名称中的任何错误才会显现出来。此外,当开发者记不清列名是 "itemcode" 还是 "itemid" 的时候,他会发现基本的 DataSet 在这方面毫无帮助。

一个强类型的DataSet可以解决这些问题。而一个普通的DataRow却无法取代它,因为普通的DataRow只有一个(例如)作为OrderDetailDataTable一部分的OrderDetailDataRow。您可以将这些列作为OrderDetailDataRow的实际属性 (row.ItemCode) 进行引用。用这种方式,可以提高 IntelliSense 的生产率。表名称和列名称在属性编辑器中也会变得有效,从而增强诸如数据绑定之类的设计人员级工具。

那么,怎样构建这个提高生产率的强类型DataSet呢?要花费如此多的时间或精力来构建一个您还没有体验到任何净生产效率的东西吗?Informix ADO.NET 驱动程序可能没有其他一些驱动程序那么复杂。Microsoft 的SQLDataAdapter(用于 SQL Server)包括一个 Generate DataSet 向导。而IfxDataAdapter没有这样的向导。不过,您可以构建一些工具来帮助您,也可以使用一些已在 .NET 框架中构建的工具。最后,您将拥有封装所有数据库交互的强类型DataSet的一个子代。

.NET 框架包括一个 XSD 编译器 (xsd.exe),它可以从某个经过特殊格式化的 .xsd 文件中生成一个强类型DataSet。但是,谁想键入一串 XML 呢?幸运的是,DataSet对象包括一个叫做WriteXmlSchema()的方法。此方法允许您使用非类型化的DataSet为强类型DataSet创建 XSD 文件。让我们来看一下如何做到这一点。以下是一个示例表:

清单6.Clientstest表
CREATETABLEclientstest(clientcodeSERIALnotnull,clientacctnameCHAR(60)notnull,primarycontactCHAR(30)notnull,primaddrcodeCHAR(10),createdateDATE,initialamtDECIMAL(18,0));
以下是用于此表的单表DataSet:
清单7.定义DataSet
DS=newDataSet("dsClients");//=newDataTable("clients");DataColumnCollectioncols=mainTable.Columns;DataColumncolumn=cols.Add("clientcode",typeof(Int32));column.AllowDBNull=false;cols.Add("clientacctname",typeof(String)).MaxLength=60;cols.Add("primarycontact",typeof(String)).MaxLength=30;cols.Add("primaddrcode",typeof(String)).MaxLength=10;cols.Add("initialamt",typeof(Decimal));cols.Add("createdate",typeof(System.DateTime));//primarykeymainTable.PrimaryKey=newDataColumn[]{cols["clientcode"]};//addtabletoDataSetDS.Tables.Add(mainTable);//WriteschematofileDS.WriteXmlSchema("dsClients.xsd");

在这个定义中,可以在数据上设置类型和限制条件。还可以设置列名称。这些名称不必与数据库的列名称匹配。观察本文下载部分中的代码文件,以查看得到的 dsClients.xsd 文件。

为了使生成 XSD 文件(或者在发生更改后重新生成它)变得更容易,可以为这些DataSetBuilders 构建一个框架。(完成此任务所需的所有代码都包含在下面部分。)在想用该框架确定要构建哪些 Builders 时,可以使用反射来动态确定某一 Builders 是否是DataSetBuilder。让我们从编写IBuildable接口开始。它定义了DataSetBuilder必须实现的属性和方法。

清单8.IBuildable接口
publicinterfaceIBuildable{stringFileName{get;set;}stringFilePath{get;set;}LoggerLog{get;set;}DataSetDS{get;set;}voidBuildXSD();voidCompileXSD(stringoutputDirectory);}
热点内容
王者荣耀安卓系统怎么转换到苹果 发布:2025-04-22 22:53:29 浏览:981
emobile7服务器地址如何查看 发布:2025-04-22 22:32:51 浏览:763
房间的秘密码是什么 发布:2025-04-22 22:32:43 浏览:121
文件夹前面多了选择框 发布:2025-04-22 22:32:40 浏览:704
迅雷网ftp 发布:2025-04-22 22:30:02 浏览:622
鼠标驱动源码 发布:2025-04-22 22:29:55 浏览:768
如何开发android应用 发布:2025-04-22 22:18:55 浏览:880
医保卡密码从哪里看 发布:2025-04-22 22:14:34 浏览:260
地铁逃生安卓更新后为什么进不去 发布:2025-04-22 22:13:49 浏览:443
java枚举使用 发布:2025-04-22 22:06:56 浏览:257