Mono + embedded firebird - winforms

About a year ago, I was able to run a win32 application based on .Net 4.5 on my linux machine using an embedded Firebird database.
To make absolutely sure, I removed all firebird stuff on my linux server and only copied the embedded dll's as it works for windows.
When I run using MONO version 3.12.0, I get following error when trying to open a DB connection:
Error: fbembed
at (wrapper managed-to-native) FB_1061628003_Class:isc_attach_database (intptr[],int16,byte[],int&,int16,byte[])
at FB_1061628003_Class.IFbClient.isc_attach_database (System.IntPtr[] statusVector, Int16 dbNameLength, System.Byte[] dbName, System.Int32& dbHandle, Int16 parmBufferLength, System.Byte[] parmBuffer) [0x00000] in :0
at FirebirdSql.Data.Client.Native.FesDatabase.Attach (FirebirdSql.Data.Common.DatabaseParameterBuffer dpb, System.String dataSource, Int32 port, System.String database) [0x00000] in :0
at FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect () [0x00000] in :0
at (wrapper remoting-invoke-with-check) FirebirdSql.Data.FirebirdClient.FbConnectionInternal:Connect ()
at FirebirdSql.Data.FirebirdClient.FbConnection.Open () [0x00000] in :0
I read here that that the firebird .Net client was not supported in later releases than 2.6.
Now that's a while back and I wanted to know if anybody had insights / updates on this particular topic?
As an alternative, does anybody know if wine of equivalent would be working?

I just installed Wine and was able to install .Net framework and I was able to connect to my database.

Related

implemented SQLExtendedFetch function in my odbc driver(3.5) ,but odbc driver manager still says drivers doesn't support this function

as the title says , I have implemented this deprecated function for some odbc 2.0 applications ,when one application start to connect a database via this odbc driver , shows the below error message
I have implemented SQLGetFunctions also ,so this deprecated API could be noted as already implemented.
I am really confused ,any help will be appreciated ,thanks a lot!
I can answer my own question .
The reason is odbc driver on windows is dll.So I need to export the api either by declspec(dllexport) or by dll_name.def file . I don't add the the API name to the def file,so driver manager panics.(I just developed the project halfway ,and not aware of the def file)
It is dumb ,indeed .But maybe it can help some novice like me ,who are not familiar with dll mechanism

Mono Console Application: Winforms Method Throws Exception On Linux Without X

I have a C# console application that I want to run on Linux. I've compiled it in MonoDevelop and on my machine (Ubuntu 12.04 LTS, 64 bit) it runs fine. However, on a VPS I have rented (same OS but no X11), while the application starts without problems, I get exceptions at runtime.
The call that causes the exception is the MeasureText method of class System.Windows.Forms.TextRenderer. In case you're wondering what this method is doing in a console app, it needs to measure the length of text rendered in a certain font for calculating the correct placements of text elements in SVG files it's creating. Exception message and stack trace excerpt below:
An exception was thrown by the type initializer for System.Windows.Forms.XplatUI
at System.Windows.Forms.TextRenderer.MeasureTextInternal (IDeviceContext dc, System.String text, System.Drawing.Font font, Size proposedSize, TextFormatFlags flags, Boolean useMeasureString) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextRenderer.MeasureText (System.String text, System.Drawing.Font font) [0x00000] in <filename unknown>:0
I think I have installed the font in question correctly on the server, at least it shows up when I call fc-list. So do I need X for this or are there ways around it? Am I just missing some package install on the server? Failing that, is there maybe an alternative that I could use to achieve the text measuring?
I tried out the suggestion made above and it worked. I installed xvfb and am now running mono through xvfb-run. Exception has disappeared and memory usage on server hasn't gone up by much.

How to Resolve Quickbooks Interface Error: QBFC Error "Could Not Load File or Assembly Interop.QBFC7 or one of its dependencies"

I recently inherited a C# Winforms application that communicates with Quickbooks via their QBFC interface. The application contains a reference to the COM Server Interop.QBFC7.dll. The application works fine in our test environment and in several of our client's environments. Although, yesterday when I attempted to install it on a new customer's system I continued to get the following error:
Could Not Load File or Assembly 'Interop.QBFC, Version=8.0.0.87, Culture=neutral, PublicKeyToken=...' or one of its dependencies. The system cannot find the file specified.
I know that we have several customers running this application on various versions of Quickbooks (i.e. Quickbooks Pro, Premier and Enterprise between 2008 and Enterprise 11.0). To my knowledge, this is the first customer that we have attempted to deploy this application that has Enterprise 12.0.
I have attempted the following to resolve the issue with no success:
1) Install the QBFC7_Installer from the Intuit Developer Network Site
2) Install the Quickbooks SDK 10 Installer from the Intuit Developer Network Site
3) Verified that the Interop.QBFC7.dll file is present on the file system.
4) Attempted to manually register the COM object Interop.QBFC7.dll via the command prompt: regsvr32 Interop.QBFC7.dll (This fails as well and windows returns an error stating that it cannot find the object).
Does anyone have any suggestions or feedback about additional things that I can try to resolve this issue? I get the same error on 3 different machines at their site running different operating systems (i.e. Windows Server 2008, Windows 7, and Windows Vista)? I have also tried compiling in both x86 and 64-bit configurations to no avail.
Thanks in advance for any help.
First of all, you should be targeting an x86 build only. The QuickBooks SDK won't work if you target Any CPU or x64. Your main problem, though, is that you are looking for the wrong version of QBFC. Notice the version stamp on your error message:
Could Not Load File or Assembly 'Interop.QBFC, Version=8.0.0.87,
Culture=neutral, PublicKeyToken=...' or one of its dependencies. The
system cannot find the file specified
This is QBFC8, not QBFC7. So you should be able to fix the problem with the QBFC8 installer.
The version of QuickBooks should not make a difference, since QBFC 8 (or 7, for that matter) will work with the 2008 and Enterprise 11 or 12.
You should look into using a setup project to install your application in order to avoid this problem in the future. A setup project should detect the QBFC dependency automatically. Once you see this happening, go to SearchPath property of your setup project and add the MergeModule directory from the SDK that is installed on your machine. Once you do this, you should see that the QBFC and Xerces merge modules are added to your project automatically as dependencies. Of course, you'll also need to update your code to a more recent version of QBFC, but that's probably a good idea in any case.

Informix "Invalid Argument" exception with connection string

I have been looking online for days trying to solve my problems and I cannot find anything which hints as to why I get this issue.
The exception is: System.ArgumentException: Invalid argument
I am using IBM.Data.Informix.dll version 9.0.0.2, the connection string has been through many permutations, but based on most examples from IBM and online this is what I have:
Database=testdb; Host=10.0.0.123; Server=test; Service=3013; User Id=testuser; Password=test123; Protocol=onsoctcp;
I have tried setting Service to the name of the service, I have removed it, even tried setting server to the IP rather than the Host. Whatever I do it just keeps coming up with a useless exception which doesn't help at all in debugging.
I am using the IfxConnection class when instanciating:
using System.Data;
using IBM.Data.Informix;
namespace InformixTest
{
public class InformixConnectionFactory : IConnectionFactory<IDbConnection>
{
private string connectionString;
public InformixConnectionFactory(string connectionString)
{
this.connectionString = connectionString;
}
public IDbConnection GetConnection()
{
return new IfxConnection(connectionString);
}
}
}
Every time it steps into the new IfxConnection(connectionString) the exception is thrown, the connection string is injected via the web.config ConnectionStrings section. I am also targeting .net 4 incase this is a problem.
I was using the v9.5fp4_nt32_dsdriver_EN.exe installer to get the driver installed, I did read somewhere once that someone had a similar issue, so they installed the Informix Client SDK, which fixed their issue. I have also done the same but no such luck.
I am using the following sites as a reference for how my connection string should look:
http://www.ibm.com/developerworks/data/library/techarticle/dm-0510durity/
http://stackoverflow.com/questions/611345/connection-string-for-informix-for-net
Any help would be great!
your connection string works on my machine. I had a lot of problem with IfxConnection because I also installed driver first. Then I unistalled drivers and client sdk, restart windows and installed client sdk again. Just in case I restarted windows again. That did it for me.
Also, I think you should switch (if possible) to IBM Data Server .NET Provider for Informix because old informix driver won't be enhanced any more. Look here for comparison:
http://www.ibm.com/developerworks/data/library/techarticle/dm-1007dsnetids/index.html
You will find that "Informix server support" and "Support for .NET framework 3.0, 3.5" features are quite important and old driver doesn't support it. Also, article doesn't mention that old driver doesn't support database metadata retrieval.

VisualVM can't connect to any PID on Snow Leopard?

No matter what I start up, Visual VM just gives me "Unknown Application" and "Not supported for this JVM" on my Mac.
I've tried JBoss, Jetty, Eclipse - just to see if it would be able to identify / profile anything, and so far, nada.
$ java -version
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
Running on Snow Leopard. I've tried with the default visual vm (which appears to be 1.0) and a freshly downloaded version from https://visualvm.dev.java.net/download.html .
I also can't seem to get jconsole to connect to anything, and I think the two are related. I am using "-Xshare:off" as recommended to prevent crashing, but I can't connect anyway, so that's moot.
I've also verified that Visual VM and these other apps are running from the same JVM:
VisualVM:
010-03-23 13:35:09
Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.3-b01-101 mixed mode):
JBoss:
2010-03-23 13:35:57
Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.3-b01-101 mixed mode):
I have no idea what's wrong. Anyone have any ideas?
I don't know if I have an answer, but is there any chance that you have an underscore in your user name?
I see similar problems, and found that there is an old bug in jps that causes problems if you have an underscore in your username. This was fixed in Java 1.6 (by Sun), but I'm not sure it was by Apple. I've found that if I use a user that does not have an underscore in the user name, things work on my Mac. But, with the underscore... well, not so much.

Resources