Which oracle jdbc driver is my coldfusion 8 install using - coldfusion

I'm trying to debug a curious problem where by one coldfusion 8 instance is giving me an error (numeric or value error: character to number conversion error ORA-06512: at line 1) but with exactly the same code another coldfusion 8 instance isn't throwing the same error.
They are both on 8,0,1,195765 Enterprise, both running on Windows 2003.
I can't imagine why they might be using different drivers unfortunately I can't (without a huge faf) have them point to the same database.
I can (and have) modified the code so the error is no longer occurring, but I'm now trying to figure out what was going on.
So how do I find out what oracle jdbc driver ColdFusion is using, I found this blog post:
http://rahulnarula.blogspot.co.uk/2009/04/getting-oracle-jdbc-driver-version-info.html
But that's only returning me no driver found.
If it helps both databases are using oracle 10g and both databases appear to be set up the same way (though I haven't ruled out that there maybe something there)

You could try looking inside macromedia_drivers.jar for this file:
\macromedia\jdbc\oracle\oracle.properties
It looks like it contains the build ID for the Oracle driver.
Another approach would just be to diff macromedia-drivers.jar using beyond-compare or similar. It may not tell you what version the drivers are, but it will tell you whether they are the same.
Also, does the short, initial code block in the linked article not work? That ought to return something for the Macromedia drivers.
Barny

Related

Convert an unknown database file from a windows software into a MySqli Database

I have installed a software in my system and I have a lot of data from client in it. All the files which are inside DB folder of this software are with extensions for each individual party.
I want to to use these files to get converted to a MySqli Database.
Sample file from DB folder can be download from here
I have tried understanding for firebird service which this software uses to connect with these database files to get the things.
I want to extract database and import it inside MySqli (PhpMyAdmin)
The linked file seems to be a renamed Firebird database with structure version ODS 11.2 which corresponds to Firebird 2.5.x line.
For making a quick peep into the database you can use
IBSurgeon First Aid -- http://ib-aid.com
IB Expert (the Database Explorer feature) -- http://ibexpert.net
Free mode of FirstAID would let you peep into the data, but not extract it out, probably not even scroll ALL the tables. It also would most probably ignore all database structures that are not tables (UDF functions, procedures, VIEWs, auto-computed columns in tables) - afterall it is just low-level format parser, not an SQL engine.
IB Expert has as a non-commercial Personal edition, but it probably does not include DB Exp, however you may try a trial period of full version. However IBE's DBExp would probably also only show basic structures of the database, maybe it would be enough.
Alternatively you can install Firebird 2.5.8 - either a standalone version or maybe embedded (a set of DLLs used instead of FB server process) if your application can use it, then use any DB IDE suit to explore it. Most often mentioned for Firebird would be IBExpert, FlameRobin, Firebird Maestro or any other. Then you would be able to try different SQL queries, including SPs, VIEWs and UDF-functions if there were any registered for the database and actually used.
BTW IBExpert comes bundled with FB 2.5 Embedded, which one can use to open the database file.
After you figure out the format, you can either export required data into some intermediate format like CSV (for example: http://fbutils.sourceforge.net/ ) or use your C++ application (though why would anyone develop web-application in C++) using libraries like IB++ or OLE DB, etc. Maybe it would be better to just use the Firebird server and original DB files from PHP or what would you write the application in.

c++ mysql_query update returns error if content is similar to existing (but no way to differentiate from normal error)

I'm trying to set up an error detection system in c++ when doing a mysql_query, to check whether the query failed and if so try again (I'm using the mysql libray for Linux). The function mysql_query returns an int which is set to zero for success, and non-zero if failed (the error numbers are available at https://dev.mysql.com/doc/refman/5.0/en/mysql-query.html).
My first problem is that mysql_query only returns 0 or 1 for me, and this would be fine until I try to update a database entry with a similar content to what's already in the database. It also returns an error for that, which is fine on the principle, but as I can't differentiate it from an normal error, my current error detection system would try to repeat the query until it stops returning an error, which never happens. You'll tell me I could check what's in the DB first and then compare it to what I try to update before doing the query, and you would be right, but the code is already very complex and adding this level of complexity on the top would take quite some time.
So I'm wondering if there is a simpler answer to that? Thanks
Like #Mat wrote just use mysql_errno() (see Mysql Docs)
It returns 0 for success or an error code for errors.
Just so you guys know where this error actually came from, if you ever have the same.
I repetitively had mysql errors 2013 and 2006 when performing queries from different threads at the same time, but only after running a certain number of requests. I tried pretty much everything explained here.
Apparently for some reason the connection crashes and I can't do much to avoid it. The only thing that worked for me is to enable automatic reconnect using mysql_options and the option MYSQL_OPT_RECONNECT. It seems like a work around, more than a real fix, but at least my program doesn't crash now!

muliple steps oledb operation generated using sql server compact edition

I am using SQL Server Compact Edition.
One of the column size of my table is more than 500.
When I am Selecting from this table I am getting this error in visual studio:
multiple steps oledb operation generated
How can I avoid this error?
This may happen when you pass an unexpected value in one of your DB operation (say you pass NULL to a non-NULL field for example).
I would expect the error message to be longer and more informative (did you truncate it ?). In the current situation, that's pretty much all we can say about it.
A quick google search gave me that link which may help.

How can you "global replace" in Crystal without visual studio?

I had to replace a DB table with embedded SQL in Crystal.
Now I find myself completely amazed that (apparently) I have to open thirty or more formulas one at a time and replace the table name with "Command"
If I select "All formulas" in the replace widget, all the replace controls are disabled.
This is so stupid that I figure I am missing something.
I am working the Crystal files directly in the Crystal IDE. Not able to fire up a C# or VB program to do it for me. I did try a couple of times in the past to edit things in Crystal files with regexp/perl/editors and similar, but that failed due to the Crystal file format.
(S.O. says my question "appears subjective and is likely to be closed." Huh?)
Transitioning from linked tables (Database 'expert') to a command (or the other direction) has always been painful (I've been using the product since v4)--CR doesn't have a good (or even mediocre) way to do this. You should be able to map your command to a single table, but you'll lose field (from the canvas) during the process (because CR will remove unmapped fields). Best practice is to always use a command or to wrap each table.field element in a formula field.
With earlier version of the product, I might have suggested using the SDK to make the change. However, this level of control has been shifted to BusinessObjects' RAS SDK.
If you are interested, have a look at my RptToXml project or its C# replacement.

Microsoft SQL Server 2000 file records not in standard unicode, but made with Borland C++

I am recently trying to change our company's old program. One of the huge rocks in my way is that the old program was made with Borland C++, and it had its own way of connecting to the SQL Server 2000 database.
After 8 years, I'm trying to retire this program. But when I looked at the database, I got freaked out!
The whole database was in a vague language that was supposed to be Persian.
I'll give you a portion of the database converted to SQL Server 2005, so you can see it for yourself. I've spent many days trying to figure out how to decode this data. But so far no results has come out of it.
Link to the sample Database File
So please if you can tell me how to use them in Microsoft C#.net it will be much appreciated.
These are the datatypes used for them:
And this is how it looks:
Thanks a lot.
1) Analyse existing program and original database
Try to figure out how the C++ program stored Persian text in the database. What are the collations defined on the original server, database, and on column level.
Does the C++ program convert the data to be stored and retrieved from the database? If so, find out how.
It may well be that the program displays data in Persian, but does not store it in a compatible way. Or it uses a custom font that supports custom encoding. All this needs to be analyzed.
2) The screen shots looks as if everything Persian is encoded as ASCII characters higher than CHAR(128).
If this a standardized encoding or custom created?
3) To migrate the database, you most likely will need to convert the data mapping original characters to Unicode characters.
First recreate the tables using Unicode-enabled columns (NVARCHAR, NVARCHAR(MAX)) rather than CHAR and VARCHAR, which only support Latin or Extended Latin.
4) Even if you successfully migrated your data, SSMS may not correctly display the stored data due to font settings or OS support.
I summarized the difficulties of displaying Unicode in SSMS on my blog.
But first, you need to investigate the original database and application.