Tag: informix

Informix内存泄漏

我使用Informix遇到了一个奇怪的问题(具体来说,我使用的是IBM.Data.Informix命名空间,4.10 Client SDK)。 我使用ODBC连接到IBM Informix数据库并遇到内存泄漏问题。 文档相当稀疏,我被锁定使用我目前安装的驱动程序/ SDK。 这是我用于数据库上下文的代码: public class IfxDbContext : IIfxDbContext { private readonly string _connectionString; //private readonly IfxConnection _connection; public IfxDbContext(string connectionString) { _connectionString = connectionString; //IfxConnection conn = new IfxConnection(connectionString) {ConnectionString = connectionString}; //_connection = conn; } public IEnumerable GetItems() { var items = new List(); try { using (IfxConnection conn […]

我应该选择哪种RDBMS和开发工具重新编写基于角色的应用程序?

我有一个20年前用INFORMIX-SQL / SE(DOS)编写的当铺CRUD应用程序,它目前在Windows Vista上的Microsoft Virtual PC 2007中的DOS 6.22上运行。 我想用GUI,基于SQL的引擎使这个应用程序现代化并保留其现有function。 它不需要任何网络或多用户function。 我更喜欢一种免版税的产品。 我也想用尽可能少的努力快速重写它。 你会推荐哪种工具? 我在讨论是否用I4GL(基于字符)或其他基于Windows / GUI的工具重写我的INFORMIX-SQL应用程序。 我的应用程序非常强大,并具有一些令人难以置信的function,我的用户非常满意。 只有障碍才能阻止我有效地实现市场渗透,相信它,我的应用程序是基于字符的,我想用GUI复制相同的function。 我的感觉是,用户使用基于char的应用处理事务比使用鼠标聚焦光标更快,但化妆品对我有害! 在我投入大量时间评估其他产品之前,我想知道使用其他开发工具的限制,缺陷或缺点的具体实例。 这个问题的答案可以节省我很多时间和金钱! 如果您访问www.frankcomputer.com,您可以查看我的当铺应用程序的video演示。 (CAVEAT:该网站采用西class牙语,使用谷歌翻译获得或多或少正常的文本翻译。在两分钟标记处启动video,720p分辨率和全屏以最好地理解我的应用程序。)

处理连接或关闭连接

以下两种方法中哪一项具有更好的性能? using( var DB_Connection_s = new DBConnection() ) { //todo: interact with database connection } 要不就 : DB_Connection_s.Close(); 在末尾。 第一种方法是否使汇集概念无用? 因为如果我为每次使用处理连接,那么我每次都必须打开一个新连接(并且池中没有任何连接)。

非法尝试使用Text / Byte主变量 – 插入TEXT列

尝试通过Dapper插入表(文本列),并从Informix获取错误: Illegal attempt to use Text/Byte host variable 我已经编写了一个小程序来模拟这个,我仍然面临着问题。 我们目前无法使用Informix驱动程序,因为它们不适合我们的需求。 using Dapper; using System; using System.Data.Odbc; namespace DapperParamsTest { class Program { static void Main(string[] args) { OdbcConnection conn = new System.Data.Odbc.OdbcConnection(“Driver={IBM INFORMIX ODBC DRIVER (64-bit)}; Host=bylgia; Server=bylgia; Service=sqlexec; Protocol=onsoctcp; Database=DATABASE; Client_Locale=en_US.CP1252; DB_LOCALE=en_GB.1252”); var dynParams = new DynamicParameters(); dynParams.Add(“np_c_ref”,-1); dynParams.Add(“np_np_type”,”T”); dynParams.Add(“np_text”, System.Text.Encoding.Default.GetBytes(“TEXT INPUT”), System.Data.DbType.Binary); conn.Execute(“INSERT […]

在每个非查询或整个连接之前打开连接?

如果我有大约2000 record ,我会进行多次插入。 哪种方法比其他方法有更好的性能? 连接每个插入。并在插入后关闭。 一个连接用于整个批量并在最后关闭连接。 那么在这种情况下连接超时呢。 备注 : 数据库是informix db。 插入约6000条记录大约需要3.5到4分钟。(第一种方法)

环境事务中的TransactionScope错误不会回滚事务

我使用这样的环境事务: using(TransactionScope tran = new TransactionScope()) { CallAMethod1();//INSERT CallAMethod2();//INSERT tran.Complete(); } 方法CallAMethod2(); 返回affected rows =-264因此无法插入但是第一个Insert已经提交! 我想知道如何使用ambient transaction ,如果第二种方法有多个需要内部事务的操作,我应该将这些操作放在内部事务中吗? 像这样 : DAL_Helper.Begin_Transaction(); //——Fill newKeysDictioanry affectedRow = DBUtilities.InsertEntityWithTrans(“table2”, newKeysDictioanry, DAL_Helper); if (affectedRow == 1) { if (!string.IsNullOrEmpty(sp_confirm)) { result_dt = UserTransactionDAL.Run_PostConfirm_SP(sp_PostConfirm, OBJ.ValuesKey, DAL_Helper); if (result_dt.Rows.Count > 0 && result_dt.Rows[0][0].ToString() == “0”) { DAL_Helper.current_trans.Commit(); if (DAL_Helper.connectionState == ConnectionState.Open) […]

这个IfxTransaction已经完成; 它不再可用

问: 当我使用交易时,我会在每100条记录中约有1条出现以下错误。 这个IfxTransaction已经完成; 它不再可用 我不能指望错误发生的时间或错误的原因是什么。 我尝试在同一笔交易中插入约607记录。 我的代码: public static int InsertGroups(List groups) { DBConnectionForInformix con = new DBConnectionForInformix(“”); con.Open_Connection(); con.Begin_Transaction(); int affectedRow = -1; Dictionary groupsParameter = new Dictionary(); try { foreach (Group a in groups) { groupsParameter.Add(“id”, a.GroupId.ToString()); groupsParameter.Add(“name”, a.Name); groupsParameter.Add(“studentcount”, a.StudentCount.ToString()); groupsParameter.Add(“divisiontag”, a.DivisionTag.ToString()); groupsParameter.Add(“entireclass”, a.EntireClass.ToString()); groupsParameter.Add(“classid”, a.ClassId.ToString()); groupsParameter.Add(“depcode”, a.DepCode.ToString()); groupsParameter.Add(“studycode”, a.StudyCode.ToString()); groupsParameter.Add(“batchnum”, a.BatchNum.ToString()); […]

从.Net连接到Informix数据库

从.Net连接到Informix数据库的最佳方法是什么? 我正在开发一个基于传统Informix DB的客户端 – 服务器应用程序,以前通过JDBC连接。 我需要它,从最重要到最不重要: 快点 不需要DB服务器更改 除了de .Net Framework 2.0之外,没有ODBC和依赖关系 在此先感谢您的帮助。