Thursday 9 July 2009

The road to Delphi 2009 - Part 1 (iii)

Still calling this Part 1 (Act 3) as I'm not actively pushing anything forward until I've overcome the ODBCExpress hurdle. I've had some positive steps forward with this.

I have been in regular contact with Pieter Myburg, its original author. Even though he is no longer actively developing it, he has very helpfully made some changes to 3 files that allow the packages to compile and install into Delphi 2009.

Even more helpfully, he has agreed to Open Source it and is looking for moderators. I have agreed to help (as has another user this morning) but we need more, as I can't honestly say with full confidence what I know what I'm doing with the code! I don't want to give out his email address on a blog but the newsgroup for ODBCExpress is news.korbitec.com.

So now I can connect my data and view it. I've already noticed that nvarchar fields (SQL Server) display with non-printable characters so that is my first area of investigation.

I have also come across another peculiar one. If I connect within the IDE, everything displays in a DBGrid. If I run the executable, when the database connects, the debugger pops up and shows me the CPU Window on ntdll.DbgBreakPoint. This used to happen to me in Delphi 6 when I pressed F12 in my software, which I understand was a bug left in the IDE. However, this happens when the database connects so I'm guessing it must be something in code.Whether that is ODBCExpress code or native VCL code, I'm unsure.

Slowly moving forward.

4 comments:

Andreas Hausladen said...

F12 was and is no bug left in the IDE. It is standard Windows behavior if a debugger is attached to a process. It can be controlled in the registry (other hotkey, disable). For Vista Microsoft has turned it off by default.

Unknown said...

OK Andreas, thanks for that, I was told wrong some time ago then.

Chris Hesik said...

Also, the Delphi 2009 debugger allows you to ignore non-user breakpoints (which is essentially what you are encountering when you press F12). Look at the "CodeGear Debuggers" node in the Tools | Options dialog. Turn on the "Ignore non-user breakpoints" option, and you can press F12 without it breaking back into the debugger.

Unknown said...

Thank you Chris.