The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,839 other subscribers

Archive for the ‘Development’ Category

SQL Server: conditionally performing a DROP TRIGGER

Posted by jpluimers on 2010/07/19

Sometimes you need to drop a trigger, and depending on your SCM, your database might not actually have it.

Many people start blinding querying the system tables for this (a few of those examples are revealed by this Google search query).
This might be caused by old Microsoft documentation showing this as an example back in SQL Server 2000.

This is not needed for DML triggers (that react on data changes), querying the system tables is only needed for DDL triggers (that react on DDL actions).

For DML triggers (the vast majority!), you can use OBJECT_ID in stead. Read the rest of this entry »

Posted in Database Development, Development, SQL Server | Leave a Comment »

SQL Server: SELECT multiple declared variables

Posted by jpluimers on 2010/07/14

Declared @local_variables and parameters in stored procedures are a very handy feature of SQL Server.
They allow for local storage, and for passing information around without storing them in your database first.

You can assign values by using both SET @local_variable, and SELECT @local_variable.
Note that these are different than a regular SET or regular SELECT.
In addition, SET @local_variable and SELECT @local_variable are different too.
Though Microsoft recommends using SET, there are a differences between SET and SELECT, which can make SELECT a lot faster in loops.

Assigning multiple @local_variables in a single SELECT query

There seem to be no examples (or very few: as I could not find them) about using the SELECT @local_variable to select values into multiple @local_variables from a query.
This can be very useful,  so here is a small example: Read the rest of this entry »

Posted in Database Development, Development, SQL Server | Leave a Comment »

SQL Server 2005 script to restore .BAK file to a database in a specific directory

Posted by jpluimers on 2010/07/13

Recently I needed a way to automate some testing on SQL Server 2005.
The easiest way was to start with restoring some predetermined database state from a .BAK file.
Hence I wrote the script below.

Next to SQLCMD, this script uses SubInACL, which you can download here (don’t worry that version seems to be only for Windows 2000..2003: it still works in Windows 7).

Microsoft does not have much documentation (except the built-in by calling “SubInACL /help /full”.
But this SubInACL page has some more insight on how to use it. Read the rest of this entry »

Posted in Database Development, Development, SQL Server | Leave a Comment »

RT: JQuery: Novice To Ninja ebook free for 24 hours (or less now, I guess) – DelphiFeeds.com

Posted by jpluimers on 2010/07/12

If you want JQuery: Novice To Ninja ebook for free, then hurry :)

–jeroen

via: JQuery: Novice To Ninja ebook free for 24 hours (or less now, I guess) – DelphiFeeds.com.

Posted in Development, JavaScript/ECMAScript, jQuery, Scripting, Software Development, Web Development | Leave a Comment »

Date Time SQL Queries: Formatting Date Time Values for Access SQL in Delphi

Posted by jpluimers on 2010/07/08

Five words:

use parameters instead of literals.

via: Date Time SQL Queries: Formatting Date Time Values for Access SQL in Delphi.

Edit: Fixed “in stead of” into “instead of”: learned something new today :-)

–jeroen

Posted in Delphi, Development, Software Development | 9 Comments »

Hardening WordPress: when 10 Useful WordPress Security Tweaks are not enough

Posted by jpluimers on 2010/07/07

Last week, Jean-Baptiste Jung started a bit of a stir when posting on Smashing Magazine about 10 Useful WordPress Security Tweaks.

He totally missed the official Hardening WordPress page and generated a lot of comment traffic.
All of his tweaks were rebutted by commenter Vid Luther (Mobile Commerce and Technology Evangelist and ZippyKid owner) in a separate How to Secure a WordPress Site.

This once again shows that for serious work you really need to know what you are doing.
If you don’t, then leave the work to people who do: Vid is one of those guys.

–jeroen

via: 10 Useful WordPress Security Tweaks – Smashing Magazine.

Posted in Development, Software Development, Web Development, WordPress | Leave a Comment »

Delphi interfaces on binary level « The Programming Works

Posted by jpluimers on 2010/07/06

This interesting post by Serg Kas on Delphi interfaces on binary level didn’t make it on DelphiFeeds, hence my reference to it.

It is a nice post about the inner workings of interfaces in Delphi.

Recommended reading!

–jeroen

via: Delphi interfaces on binary level « The Programming Works.

Posted in Delphi, Development, Software Development | Leave a Comment »

TFS: Undoing a checkout that belongs to another user – via TFS Version Control and more

Posted by jpluimers on 2010/07/01

I recently needed to undo a TFS checkout from a user on another workspace.
This particular user had an exclusive lock on the document, was scheduled to be away for considerable time, and I was supposed to finalize that document.

I know that performing the undo is not possible from the Visual Studio UI: you need use the TF command-line application for this kind of work.

Fiddling on my own with the TF undo syntax didn’t get me the results right away, so I was glad to find this “Undoing a checkout that belongs to another user” post by mrod (Mario Rodriguez) from Microsoft.

The trick was to include the bold part: Read the rest of this entry »

Posted in Development, Source Code Management, TFS (Team Foundation System) | 3 Comments »

Web 2.0 apps throwing away your user input #fail

Posted by jpluimers on 2010/06/30

It seems quite a few “web 2.0” apps too have the same glitch: they throw away user input when the first page finishes loading.
This is especially noticeable on slow connections (UMTS, DSL that is a long distance from the phone company, EDGE, GPRS, etc): the connection speeds that a lot of developers don’t seem to test on.

So, the sequence of events  goes like this:

  1. The data entry fields (in this case, from and to location) become visible
  2. You put the focus on the from field
  3. You type the from address (I do blind typing)
  4. You press the tab key to go to the to field (more and more Web 2.0 apps get their tab order right nowadays)
  5. You type the to address
  6. You wait until the “GO” button becomes visible
  7. The Web 2.0 app keeps loading
  8. It erases the “from” and “to” fields that you just typed

Or more general:
when you start typing in a Web 2.0 app which is still loading, almost all the times you loose your input.

And since there is usually no visual clue when the Web 2.0 app has finished loading, you have to wait until you feel comfortable not loosing your input.

Bad!

Examples that get this wrong:

Please add your own in the comments…

–jeroen

Posted in Development, Opinions, Software Development, UI Design, Web Development | 1 Comment »

small script to list SQL Server databases and their data/log files

Posted by jpluimers on 2010/06/29

For my own memory: a small script to list SQL Server databases and their data/log files.

"%ProgramFiles%\Microsoft SQL Server\90\Tools\Binn\OSQL.EXE" -S .\SQLEXPRESS -E -Q "select name from sys.databases"

"%ProgramFiles%\Microsoft SQL Server\90\Tools\Binn\OSQL.EXE" -S .\SQLEXPRESS -E -Q "select name,filename from model.sys.sysfiles"

"%ProgramFiles%\Microsoft SQL Server\90\Tools\Binn\OSQL.EXE" -S .\SQLEXPRESS -E -Q "select name,filename from master.sys.sysfiles"

"%ProgramFiles%\Microsoft SQL Server\90\Tools\Binn\OSQL.EXE" -S .\SQLEXPRESS -E -Q "exec sp_msforeachdb 'select ''?'',name,filename from ?.dbo.sysfiles'"

SQL Server maintains a list of databases in the system table sys.databases.

It also has an unsupported procedure sp_msforeachdb that you can use to investigate for instance performance issues.

In the above example, sp_msforeachdb just builds a statement (filling the ? with the database name) to execute.

–jeroen

Posted in Database Development, Development, SQL Server | Leave a Comment »