How to trace ADO calls - windows

Friends, Is there a tool available to trace all sql statements passed between ADO (legacy vb6) (NOT ADO.NET) and database server? Appreciate your help

Have you already seen this free (as in beer) Statement Tracer for ADO app by some Above Software? From program site:
Solution for monitoring SQL queries to Microsoft® ActiveX® Data
Objects (ADO) data sources.
Monitoring any number of applications.
Tracing ADO queries in real time.
Enabling and disabling monitoring at any moment.
Frankly, I never used or heard about it before. But quick test with VB6 ADO app vs. SQL Server 2008 Express looks good: the tool did capture connection string from ADODB.Connection.Open() and SQL statement text from ADODB.Connection.Execute().

Related

Does SQL Developer GUI use an encoding?

I'm using SQL Developer and I have a doubt about displaying data in the SQL Developer GUI. Indeed, I have an encoding concern, and I wanted to check the real state of the data, because I think that maybe the SQL Developer GUI also uses an encoding....
I don't know if my question is clear?
Oracle SQL Developer is a Java application, everything we do is 'Unicode'
That being said, when you open or create a file, you most definitely cause an 'encoding' to be set.
What most folks run into, problem-wise, is using a FONT that doesn't support the characterset being used in their database.
This setting affects display of BOTH your code and your data.
Disclaimer: I work for Oracle and I am the product manager for SQL Developer.

What are options for a Delphi app to migrate away from BDE if using Oracle database

We have a Delphi 5 app connecting to an Oracle 8i database.
Most logic is siting in the database as Stored Procedures. Currently we are using the Borland Database Engine (BDE) to connect to Oracle via OCI client 9.2.
This app was originally written in '96 using Delphi 1 then upgraded to Delphi 5 in '99.
The plan is to upgrade to XE client and Oracle 11g.
What are what the options to simply replace the BDE with something else and keep the effort to a minimum?
So far I have seen:
AnyDAC (http://www.da-soft.com/anydac/)
devart ODAC (http://www.devart.com/odac/)
DOA (http://www.allroundautomations.com/)
I am not considering DBExpress as I do not believe that it will have the performance that we need.
Things that are important are:
ease of upgrade, e.g. wizard or some other tool to convert DBE components,
Good Performance.
I am leaning towards devart as they do have a migration tool (although it only does a partial job) and they have a direct TCP option to connect to database without the need for a client.
You will need to learn about the differences between BDE and other architectures. Whether you plan to move to dbExpress or not you should read and learn from this whitepaper.
The architecture of dbExpress is an intentional architecture, designed to address critical flaws not only in the BDE's lowest levels, but also in its upper levels (the TTable/TQuery components) and architecture. Understanding the reasons for those changes, and the limitations in the BDE that they address, is a key element in moving your app off the BDE, to anything.
As for your contention on performance, I like to see people use real data, not form opinions based on hand-waving, or adjectives like "fast" imparted upon objects, without experimental backing.
I have not personally used DOA, but if I wasn't going to use dbExpress, that would be the next thing I would evaluate, for Oracle-only environments. nevertheless, I wouldn't assume that dbExpress is slower, without testing both in my own environment.
Updated: Originally I mentioned Delphi OCI, but it turns out it's out of date, and not very active. DelphiOCI project on sourceforge, works with Delphi 7 and before, not on unicode delphi, and only with older (Oracle 8i and older) oracle versions... If this was able to work in my environment, I'd have tried it. Oh, and it's GPL. Okay. Not so great.
Both ODAC and DOA (although DOA development is pretty stale lateley) will give you access to Oracle features dbExpress and other generic DB access libraries will usually not allow access to. If your application does support Oracle only, and doesn't need to support other DBs, it's IMHO far better to exploit Oracle capabilites fully.
The ease of port depends on how you wrote you BDE component code. ODAC has tools to simplify BDE porting (I never used them, though), while AFAIK DOA has not.
DOA TOracleQuery is not a TDataset descendant, and thereby is not a direct TQuery replacement, although it has less overhead, and thereby has good performance, while TOracleDaset is the only dataset-like component.
I would not use the ODAC direct TCP connection to Oracle without the Oracle client but for very special needs - it is an unsupported (by Oracle) connection, I'd prefer to use Oracle Instant Client if a small (relatively...) footprint is needed, at least it is a fully supported option and let you (or your customers) open support request with Oracle if needed.

How to use Oracle 11g client?

I may be asking something silly but I don't see any sql*plus or any GUI kind of interface to connect my Oracle server remotely. I tried SQL Plus but it's a command line interface, don't know what to do with that.
Oracle SQL developer is a GUI client
pl/sql developer and toad are both decent, but nonfree, Oracle gui clients. If you're going to do a lot of work on packages or stored procs/funcs, one of these will be worth every bit of money you spend.
squirrel sql is an opensource client. There's a squirrel-derived plugin for eclipse called SQL Explorer; it's really good for looking at your data to help get your programs right.

How to debug stored procedures in Sybase ASE?

Is there a good tool from either Sybase or elsewhere that will enable me to debug stored procedures in Sybase ASE? I need to be able to set breakpoints & watchpoints.
Previously, in Sybase ASA (not ASE), I used Sybase Central to do this. There is a plugin for ASE, but I doubt it will let me debug procedures.
Sybase ASE comes with a command line debugger called sqldbgr. Not the most user friendly option, but it does work. You can find documentation for this in the Utility Guide.
Alternatively Embarcadero produces a SQL debugger.
You may take a look at Sybase Workspace. It's a database tool to support Sybase database servers. It comes with debug facility.
I seem to recall the Embarcadero SQL Debugger works for debugging Stored Procs in ASE. I think it is a plugin for DBArtsian. Check out their web site to get more.
Cheers,
Kevin
CAST SQL Builder (by castsoftware.com) has a debugger where you can do all the common tasks, step into, over, watch variables, select from temporary tables and so on. It's great tool, unfortunately, for home use, it costs.
Allethrin has provided the full answer.
But for this:
Alas, I need to debug some existing procedures to determine if they will break when new functionality is implemented elsewhere in the system
You certainly do not need a stored procedure debugger. Just read the stored procedure code.
The SQL editor QweryBuilder from Werysoft has a debugger for Sybase ASE: http://www.werysoft.com/
Aqua Data Studio from Aqua Fold has SQL debuggers for Sybase ASE and others (Oracle, DB2 LUW, and SQL Server).
Also, Sybase ASE ships with a command line sp debugger called sqldbgr.
Use Oracle SQL Developer. I'm presently working through a JDBC connection to a Sybase ASE database using this tool. This seems to be Eclipse-based, but is quite responsive and allows you to view source code for functions and procs too. There is also a debugger available.
To create a new Sybase connection, on the "New / Select Database Connection" window, just click on the Sybase tab, enter your hostname/port/username/password, choose a database to access, and that's it.
And this software is free of charge! One thing I love about Oracle is that they give away so many good stuff for free (think JDeveloper IDE for ADF, JRockit JVM and Mission Control, and this tool).
http://www.oracle.com/technology/products/database/sql_developer/index.html

Best RDBMS for use from VB6

We are embarking on a grand/huge project which will take us around 1 full year of coding (by 4 developers) to get off the launch pad.
It is a complete Business Management System.
We can use any commercially available RDBMS like Oracle, MS SQL Server, etc. but we are looking out to use freeware and open source RDBMS system like FireBirdSQL, PostgreSQL, etc.
I would like to know as to which is the best RDBMS to use and which has got best support for stable OLEDB Providers. We have experimented with OLEDB Providers which are freeware for FireBird and pgSQL but are not satisfied with their performance and features.
Any suggestions please....
If there are any other Freeware and/or Open Source RDBMS other than listed above with high performing OLEDB Providers please enlighten me.
Yogi Yang
Note: We will be using VB 6 only and none other development tools or compilers! The target software will have to run on Windows9x based PCs (about 60 users) and the RDBMS server will run on Linux/Windows which ever is suitable.
I'd be as conservative as possible, since your client hardware and software will need tender loving care. Since SQL Server and VB6 (and Windows) all come from Microsoft, I don't see how you have any other choice.
You might even consider using an older version of SQL Server, since the standard OLEDB server and client parts might line up better, and be lighter-weight. Otherwise SQL Server Express on Windows XP I think can serve that many connections. It certainly would have the horsepower.
The OLE DB providers for SQL Server and SQL Native Client work well with SQL Server Express, as you'd expect from Microsoft, and therefore are an excellent choice for VB6.
We can use any commercially available RDBMS like Oracle, MS SQL Server, etc. but we are looking out to use freeware and open source RDBMS system like FireBirdSQL, PostgreSQL, etc.
What's wrong with the free versions of SQL Server, Oracle, or DB2? They are all significantly more powerful than the alternatives you mentioned and they give you an upgrade path if you need it.
I've had good experience with a MSSQL2005 database backend, with VB6 clients upward of 60-100 concurrent client instances... And this was a data-heavy application with A LOT of chatty database traffic, row locking, and what not.
Worked great. Interacting with the database was the least of the problems.
On that note...
Please use parameterized queries, unless you hate yourself and want to suffer needlessly.

Resources