Delphi (BDS) Live Templates for SQL Server

Here are a few Delphi (BDS) Live Templates I created for writting SQL Server script:

Create SQL Server Table


Create table for SQL Server.

Kirby Turner


Create |TableName| table.

PRINT 'Create |TableName| table'

IF (EXISTS (SELECT name FROM sysobjects WHERE (name = N'|TableName|') AND (type = 'U')))
DROP TABLE [dbo].[|TableName|]

CREATE TABLE [dbo].[|TableName|] (


GRANT SELECT ON [dbo].[|TableName|] TO [public]


Create Foreign Key Reference


Create foreign key constraint for SQL Server.

Kirby Turner




<![CDATA[ALTER TABLE [dbo].[|PrimaryTableName|] WITH CHECK ADD
CONSTRAINT [FK_|PrimaryTableName|_|SecondaryTableName|] FOREIGN KEY([|ColumnName|])
REFERENCES [dbo].[|SecondaryTableName|] ([|ColumnName|])



Continue reading →


It’s official. Borland’s Developer Tool Group, aka DTG, aka DevCo, has spun off. The new company is called CodeGear.

Here are various links about CodeGear and today’s announcement:<ul>
<li>CodeGear blog posting by Allen Bauer, CodeGear Chief Scientist
</li><li>Letter from Ben Smith, CEO CodeGear
</li><li>Borland Spins Off Its Tools Unit
</li><li>Borland Launches CodeGear to Supply Developers with Tools of the Trade
</li><li>Borland forms CodeGear - FAQ

Continue reading →

Delphi 2006 Survey

Yesterday Nick Hodges announced that the Delphi 2006 Survey is online. Share your feedback by filling out this year’s survey.

Continue reading →

Namespaces in Delphi

Recently there have been some good postings about using namespaces in Delphi such as the ones here, here, and here. I like how namespaces are implemented in Delphi but I have been slow to adopt them in my Delphi code (especially Win32 code). The problem I have is that the BDS Project Manager has no collapsible view, or grouping for namespaces. Instead, Project Manager lists the unit names. My namespaces tend to be wordy which means I cannot easily see the unit name without making the Project Manager window very wide.

It will be great if the next release of BDS provides some sort of grouping of namespaces within the Project Manager. For example, each segment in the namespace could be represented as a folder that can expand and collapse. And the contents of the folder would be the final unit name or additional namespaces contained within. In other words, the Project Manager would look something like this when the following units are included:



Project Manager:
- MyProgram.exe
+ References
- WhitePeakSoftware
- Data
- Providers
- SqlProvider.pas
- SqliteProvider.pas
- DataProvider.pas
- Net
- MailClient.pas

There is already a feature request in the QC that asks for namespace grouping. Please vote for this feature if you are using namespaces in Delphi and you would like to see some type of namespace grouping.

Continue reading →

Parse CSV or Tab Separated Files Using Delphi

The wpsCsvParser has been updated to support parsing Tab Separated Value files. You can specify the value separator type by setting the new ValueSeparatorType property to either vsCsv or vsTab. Or you can set the ValueSeparator property to any character you wish to use as the separator. The default is vsCsv for CSV parsing.

Continue reading →

wpsCsvParser Fix

A new version of the wpsCsvParser has been posted to the White Peak Software web site. Thanks to Stephan Hilchenbach for providing the fix to the bug that caused the parser to ignore the last field on a line if the field is empty.

Continue reading →

Video Tutorials for Delphi

Nick Hodges, Delphi Product Manager, has been busy for the last 22 days piecing together the Thirty Camtasia Demos in Thirty Days for Delphi. These short videos are the perfect tutorials for those new to Delphi.

Continue reading →

CSV Parser for Delphi

I updated my Delphi CSV Parser to include .NET support. TwpsCsvParser can now be compiled for Win32 and .NET applications using Delphi. To download the code with sample Win32 and .NET applications, visit the Delphi CSV Parser page at the White Peak Software web site.

Don’t have Delphi? Visit and download the FREE Turbo Delphi Explorer or Turbo Delphi for .NET Explorer.

Continue reading →

FREE 3rd Party Tool bundle with BDS 2006

You have BDS 2006 right? Did you see the latest marketing campaign that includes the following 3rd party applications (full versions, not trial)?

Beyond Compare Differ

Registered users of BDS 2006 are also entitled to the FREE bundle. Just go to the download site and click FREE 3rd party tools.

I’ve been a Beyond Compare user for years. It’s a great piece of software. Not only can you compare files, but you can compare directories, and, get this, compare FTP sites. The ability to compare with FTP sites is awesome.

Thanks for the 3rd party bunlde DevCo!

Continue reading →

From Delphi to C# and Back Again

I remember when I first started working with C#. A friend at Microsoft showed it to me at PDC in 2000. He just happened to be the same guy who introduced me to Delphi a few years earlier, and I remember him saying “You’re going to love this.” And I did. C# made programming fun again for me after being stuck in the VB world for a couple of years. That fun feeling I had with C# was similar to the fun feeling I had when I was programming with Delphi during the mid-90s.

I enjoyed C# for the years that followed. Of course all the work was web-based. After starting White Peak Software a customer asked me to develop a prototype version of a desktop application. The customer also asked that I use VB.NET, so I gave VB.NET a try. However I stepped away from the project after completing the prototype. Working in VB.NET was an awful experience for me and I now refuse to write any programs using VB.NET.

What was equally as awful was writing a desktop application in .NET (and I have written my fair share of them as well). Sure, it can be done but not with the speed and easy found with Delphi and the VCL. I bought and used Delphi 2005 for the next desktop application I wrote and I haven’t looked back. Delphi is back as my language of choice, and the Borland Developer Studio is my IDE of choice for both Delphi and C# development.

The VCL is the magical piece that makes writing Windows desktop application so easy. Sure I love Delphi as a language. Pascal has always been my favorite. I cut my programming teeth on Pascal back in the early 80’s. C# is a nice language too especially if you prefer C-style languages, and it’s my second programming language of choice. But VCL features such as TFrame and TAction make writing a Windows desktop application make easier compared to .NET.

Today I do more Delphi programming than C# and I couldn’t be happier. My customers are happier too.

Continue reading →

Delphi Oktoberfest Video

The Delphi Oktoberfest video is a funny video from the 1995 Borland Developer Conference. The message still applies today.

Continue reading →

Turbo Delphi

Earlier this year I ranted about Borland not offering a free personal edition of Borland Developer Studio, and more specifically Delphi. A few months later a trial version was made available for download. But the new DevCo is going one step further with the upcoming release of the Turbo editions of Delphi, Delphi.NET, C++, and C#.

The single language Turbo editions come in two flavors, Explorer and Professional. Explorer is FREE while Professional will be less than $500 (and less then $100 for students). The only restriction in the Explorer addition is the fixed component palette. In other words, the Explorer edition, which comes with hundreds of pre-built components will not allow you use to 3rd party components. But that’s okay because it is FREE.

The return of single language Turbo editions is exciting news. Now all those others developers who hear me preach about the wonders of Delphi will have a chance to give Turbo Delphi a spin at no cost. And once they discover the power they will be able to buy the professional edition at a reasonable price.

For me, I plan to stick with Borland Developer Studio because I need to multi-language support. But I’m still excited about the new opportunities the Turbo editions will create.

Go DevCo!

Continue reading →

DevCo Sell to be Completed Soon

In this recent article on eWeek, Tod Nielsen said Borland is close to naming the buyer for DevCo. He also said the process should be complete by the end of September. Exciting time indeed for software developers.

Many people thing Delphi is dead, but they are dead wrong. I’ve been hearing the same time for 10 years now from people who have never even tried Delphi. “Delphi is dead.” “There is no future for Delphi.” And so on. Not only is this wrong, but the future of Delphi is brighter than ever.

I jumped onto the .NET C# bandwagon in the early days. My first C# work started right after the Summer 2000 PDC, and I worked with C# exclusively from 2001 through most of 2004.

Soon after starting White Peak Software I realized I needed a “secret weapon” not only for custom software development work but for the products White Peak Software plans to publish. That secret weapon is Delphi. I have been able to do so much more for our customers, in less time and at a lower cost beacuse Delphi.

Corporations and uppper management will never get it. Microsoft development tools are a safe choice, and in many cases .NET within the enterprise makes the most sense. But for those developers who need a tool that allows them to do many things, Delphi or rather Borland Developer Studio is perfect. The ability to write native Win32 application and .NET applications from the same IDE is priceless.

Continue reading →

Less risk with Delphi

A good read about one person’s opinion on why Delphi is less risky compared to Microsoft development tools. I concur with this opinion. Heck just the other day I incorporated some Delphi code that I wrote some 10 years ago into a customer application.

Continue reading →

QuickBase API for Delphi

I have been doing more QuickBase work lately. I really like QuickBase but the HTTP API can be a bit hairy. Intuit provides various language specific SDKs for the QuickBase API but Delphi is not included. So I’m writing my own. [I’ll post the code to the White Peak Software site as soon as it is done.]

Continue reading →

Nick Hodges Joins DevCo

Nick Hodges of TeamB fame, and a huge voice for the Delphi community, has joined the DevCo team as the new Delphi Product Manager. Congratulations Nick! I can’t think of a better person for the role.

Continue reading →

BDS 2006 Hot Fix 5

Sounds like the new Hot Fix 5 for BSD 2006 is a good one for those looking to improve IDE performance.

Update: I installed hot fix 5, and now switching between design mode and code is lighting fast! Thanks DevCo.

Continue reading →

No Delphi Road Show for me

I planned to attend the Delphi Road Show today hosted in NYC, but it seems other forces had other plans for me. I’m bummed not to be in attendance. For one, I want to show my support for Delphi and the new DevCo. I also wanted to hear David I talk about the future. And lastly, I was hoping to network with other Delphi developers. But it didn’t happen for me. I can only now hope that they add another NYC date, or better yet a Boston date. Or even provide a webcast of the road show once the tour as ended.

Update: A web cast date has been added.

Continue reading →

Delphi Road Show Webcast

Did David I read my posting hoping for a webcast of the Delphi Road Show? I doubt it but at least great minds think alike. A webcast date for the Delphi tour has been added. Thanks DevCo!

Continue reading →

Generating Large Number of Temporary User Accounts

A customer recently asked White Peak Software to design and implement custom software for generating large batches of temporary user accounts. The purpose of these temporary user accounts is to market a subscription based web site in much the same way AOL used to market its services. Here’s how it works.

Continue reading →

DevCo Questions, Comments, and Name Suggestions

DevCo wants your input. Michael Swindell, DevCo Director of Product Management, has posted a blog entry asking you to send your suggestions, comments, and questions regarding DevCo to the appropriate email addresses listed below.

Send a message to [email protected] for your company name ideas.
Send a message to [email protected] for your ideas and suggestions.
Send a message to [email protected] with any questions and concerns.

Continue reading →

Delphi ASP.NET on Mono

This blog posting by Daniel Wischnewski really caught my attention. He has successfully ported an ASP.NET application written in Delphi.NET to a Linux environment running Mono and Apache. This really doesn’t surprise me because I have in the past run .NET assemblies under Mono without a problem. But at the same time I find it very cool that it is an ASP.NET application written in Delphi, which is something I haven’t yet tried. Awesome stuff.

Continue reading →

Sharing the Delphi Love

Someone on the Joel on Software forum asked “how many ISVs are using Delphi?” If you’re using Delphi, share the love and post a reply. White Peak Software is using Delphi and Borland Developer Studio 2006 for its products and custom software.

Continue reading →

Borland 2006 Road Show U.S. Dates

Registration for the Borland 2006 Road Show is now open for the U.S. dates. I have reserved my spot for the June 8 NYC event.

Continue reading →

dbGo and Delphi

For years I believed the Professional Edition of Delphi did not provide any database access to SQL Server. I assumed if you wanted db access you would need to import the type library for ADO included in MDAC. But raw COM access to ADO is sometimes a pain (think BSTR and SafeArray). So 15 minutes of googling and reading the BDS help file I discovered a gem called dbGo. From the help file, “The dbGo components provide data access through the ADO framework.” Go figure, or should I say “dbGo figure”? [Geek humor, haha]

Continue reading →

WS-Workbench Coming Along Nicely

Work on White Peak Software’s next product, WS-Workbench (also called Swirl internally) is coming along nicely as you can see from this screen shot. The first beta should be ready soon. Post a comment or send me an email if you are interested in beta testing WS-Workbench once it is ready.

Continue reading →

Too Much Technology to Play With

Some days I find it hard to stay focused. There are many new technologies to play with and I want to spend time with them all. I’m itching to install the latest version of DotNetNuke and see what has changed in the last year. I also want to port a web part I wrote for SharePoint from C# to Delphi and make it a DNN module. There’s also a few Ajax frameworks I want to experiment with, and GData (Google Data API) is something I’m really, really anxious to play with.

The fun doesn’t stop there. Microsoft’s Windows Workflow Foundation and SQL Server Integration Services (SSIS) are peaking my interest too. /n software isn’t helping my focus problem either by releasing a new workflow and SSIS. Just more fun stuff to play with.

Maybe I need a new White Peak Software company policy allowing 8 hours per week to “technology play time”.

Continue reading →

Delphi's .NET Interop features

Bruce McGee made a newsgroup posting listing some great examples of interop between Delphi and the .NET world. Two that really caught my attention are:

<div class="quote">
Unmanaged exports. Run .Net code from Win32 applications without COM interop. Delphi and managed C++ support these, but C# doesn’t.
Virtual Library Interfaces (VLI). Run Win32 code from .Net
applications without PInvoke. Not sure if any of the other .Net
languages support something similar.

Continue reading →

XML Schema Object Model (SOM) Parser for Delphi

I’m working on a new project and have a need to parse XML Schemas found inside WSDL documents. After a few google searches I discovered the concept of a Schema Object Model (SOM). The .NET Framework has a SOM parser as does MSXML. There’s also a SOM parser for Java as well. Because I’m writing a Win32 application, I started learning the ins and outs of MSXML’s SOM parser. As a learned more I did additional google searches and discovered Delphi has its own SOM parser.

Interfaces such as IXmlSchemaDoc and functions such as LoadXMLSchema and LoadXMLSchemaStr are undocumented but the source can be found in source\win32\xml\XMLSchema.pas. There is also sample code for parsing an XML Schema available BDN. With the aid of the sample code I was able to get my sample project working.

And in case you are wondering, the VCL library has a component called TXMLSchemaDoc that wraps Delphi’s SOM parser into a handy component. You will not find it in the tool pallet though. For what it is worth, I found working with the interface (IXmlSchemaDoc) easy and I have not tried the TXMLSchemaDoc component.

Continue reading →

Trial Version of Borland Developer Studio Available

Borland has released a trial version of the Borland Developer Studio 2006. It’s a 30-day trial of the Architect Edition and it can be downloaded from the Borland web site.

Continue reading →

Brand X Delphi

The blogosphere is buzzing with the latest Borland news, and one common theme is “Who keeps the Borland name and branding?” It looks like the Borland name will stay with the ALM company while the development tools will be branded under the new company.

My first reaction to this was that the development tools should keep the Borland name. After all, most people in the development community associate the Borland name with the development tools such as Delphi and JBuilder. But after thinking about this a bit longer I’m starting to favor a new name. Brand X Delphi might spark new interest in people who have given up on the Borland name.

Continue reading →

Borland Looking for Buyer for Delphi reports Borland to Divest Dev Tools with Segue Buyout. This is definitely not a move I expected from Borland’s new CEO Tod Nielsen. Borland made the announcement yesterday saying it plans to seek a buyer for the Borland IDE product lines, which include Delphi, C++ Builder, C# Builder, JBuilder, InterBase, Kylix, and more.

Although I didn’t expect it, I think it is a good move. Borland’s focus the last couple of years has been on its ALM business, which is no interest to me. The idea that a new spin-off company will be created that will focus on development tools such as Delphi sounds like the right move to me. And I was happy to read that David Intersimone, aka David I, will be joining the new dev tool company.

Continue reading →

More on Personal and Trial Editions of Borland Developer Studio

Last week I posted a few remarks on the lack of a free Personal or Trial Edition of Borland Developer Studio. A friend of mine wanted to give Delphi a try but unfortunately he cannot because Borland does not provide a way for him to do this.

As it turns out on the same day Marco Cantu made a newsgroup and blog posting on the exact same topic. And there were a number of replies from both sides regarding the issue, which I have included below.

Still I think it is a mistake for Borland to not have a Personal or Trial version available for download available today.

More of the topic from Marco Cantu.

And a differ point of view.

Continue reading →

Delphi Job in Omaha, Nebraska

I received an email today regarding an immediate need for 3 to 4 Delphi consultants with XML experience to work on a client project in Omaha, Nebraska. Let me know if you are interested and I will put you in contact with the right person.

Continue reading →

Bitwise Review of BDS

The January 2006 issue of the online magazine Bitwise Magazine has a good review of Borland Developer Studio. The reviewer makes some very good points, although I do not complete agree with one point, C# programmers will prefer Visual Studio. As someone who also writes code in C# I prefer BDS over Visual Studio. I’m more productive using a single IDE then using two separate IDE. Using two separate IDE means I have to remember two sets of the hotkeys, how-to’s, and so on.

Continue reading →

Why NO Free Personal Edition of Borland Developer Studio?

A good friend of mine is interested in doing some Delphi programming for personal projects. Unfortunately he has no way of using the latest release of Delphi without spending money on a new user license. On the contrary, the hobbyist programmer who wishes to learn C# can download and use Microsoft’s Visual C# Express free of charge.

I’m always talking up the benefits of Delphi to my friends and I’m constantly telling other developers to give it a try. But the sad reality is that those interested in looking at Delphi for the first time or the hobbyist slash student who wants to use Delphi for personal projects and to learn cannot without spending lots of dollars for a new user license.

Get a clue Borland! Make a Personal Edition free for those programmers who wish to learn more about Delphi or use it for personal projects. And make it downloadable from your web site. You will have more Delphi customers in the long run if you do.

As for my friend, Borland has just lost a potential customer by not providing a freeware version Delphi.

Update: Seems I’m not the only one talking about the lack of a Personal Edition or trial version of Delphi. What about Delphi 2006 Trial and Personal?

Continue reading →

Using DUnit with FinalBuilder

After installing FinalBuilder for the first time, I looked through the list of actions to see what 3rd party tools were supported. I was pleasantly surprised to see an action for every tool I use in software development except one, DUnit. I thought this was odd but I soon realized that DUnit is supported, just not as a custom action.

Follow these steps to use DUnit in FinalBuilder:

1) Add a Compile Delphi Win32 Project action to your FinalBuilder project.
2) Point the Compile Delphi action to your DUnit project and configure it as needed to compile the project.
3) Add an Execute Program action to the FinalBuilder project. This action is found under the Windows OS action group.
4) Point the action to the compiled bits from the Compile Delphi action. In other words, point it to your DUnit program.
5) Mark the Log Output option, which should be marked by default.

That’s it. FinalBuilder will run your DUnit unit tests as part of the build process and the output from the tests will be captured by FinalBuilder. And of course you can configure the FinalBuilder project to act accordingly based on the pass/fail result of your unit tests.

Some people might think FinalBuilder should have a custom action for DUnit. However, the action would only be a direct copy of the Execute Program action. Or maybe it would combine the Compile Delphi and Execute Program actions into a single action. But as you can see a custom action is not needed. DUnit unit tests are support through the Execute Program action and a custom action specific to DUnit would just be a waste of time for the folks at Vsoft Technologies. Their time is better spent adding support for more tools and adding more features to an already great product,

Continue reading →

Migrating from Visual Studio to Borland Developer Studio

I spent the day migrating various Visual Studio projects to Borland Developer Studio 2006. For the most part the projects easily moved over but I did have some problems with one project group.

This project group contains multiple C# library projects and an ASP.NET C# web application. The BDS converter for the project group did not set the parent reference for some of the .aspx and .ascx files. However, I was able to quickly fix this using a text editor.

One Visual Studio feature I do miss since moving to Borland Developer Studio is Copy Web Project. I really like this feature to xcopy an ASP.NET web application to a new directory that contains only the files needed for runtime. The Professional Edition of BDS does not have this feature. However, I was able to quickly clone this feature using FinalBuilder.

Right now I’m very happy with the move to Borland Developer Studio. Using one IDE for all my development work (Delphi, C# and ASP.NET 1.1) is making me a more productive software developer.

Continue reading →

Delphi Live Templates for VB Developers

Nick Hodges has created a set of Delphi Live Templates for VB developers who have moved to Delphi. This templates work with the latest version of Borland Developer Studio. The developer to type VBish code and the templates spit out Delphi code. For instance, type “MsgBox” and you get “MessageDlg”.

Continue reading →