SyntaxHighlighter

Friday, 26 November 2010

Rant: VB.NET and Arrays

I can't take it any longer and I have to air my serious frustration with VB.NET and the way it makes you handle arrays - aarrrggghhh!

In all the languages I have come across and know it is only VB that declares arrays wrongly. There's no possible reason why an array declared with 3 elements should have 4. it's stupid!

Dim myArray(1) As String
myArray(0) = "1"  'Most languages would stop here - not VB!
myArray(1) = "2"

This is hard for me to accept - it so annoys me :@ But, don't cut off the hand that feeds the mouth and all that rubbish. So I keep quiet and truck on...

The bullet in the head came recently when I wanted to resize an array. So being a good boy I used the Array.Resize method. This is what caused the rant...VB has double standards!

I wanted to add an element to myArray(1) to make it myArray(2). So on the basis of the Dim statement I did:

Array.Resize(myArray, 2)

FAIL! You have to do:

Array.Resize(myArray, 3)

VB - make your frigging mind up!!
I know, I know...I should use an ArrayList, but I was dealing with someone else's code so was stuck with stupid VB arrays - grrr!

MSSQL Reporting Services: Invalid Object Name on Temporary Table

I had an Invalid Object Name error when I was using a temporary table inside a stored procedure when I was reporting services. It ran fine in management studio but errored in the report designer wizard.

Fixed it by using the SET FMTONLY OFF command. Happy days :)

Thursday, 25 November 2010

MySQL Reset / Reseed Indentity Column

So, there I was refreshing all the data in a MySQL dev database and the TRUNCATE statement wasn't resetting the identity column. Bummer. Hey ho, was probably something to do with the table format. But I couldn't be arsed to mess about with that so used the ALTER TABLE statement to do it instead:

ALTER TABLE `my_table_name` AUTO_INCREMENT = 1;

I needed to set the identity back to 1, but use whatever number you need it to be set to.

Tuesday, 23 November 2010

HeidiSQL: MySQL Client


Just started using a nifty MySQL client for Windows called HeidiSQL. I haven't long been using it anger, so I can't say whether I am 100% happy with it yet. I've used it a reasonable amount and so far it has been ace.

It's free to use and you can donate if you like.

Wednesday, 17 November 2010

Monitor High CPU Usage in SQL Server

Been having a situation with a client of mine recently where the SQL Server has been thrashing the CPU and ultimately killing it. And what comes through this morning in the SQLServerCentral.com newsletter but an article Geoff Albin wrote on how to monitor high CPU usage in SQL Server.
Sweet :)

Tuesday, 16 November 2010

PHP File / Page Names Containing Only Numbers

Just had a pretty cunning one where having moved a site to a new server running PHP version 5.3.3 pages/files that were named with only numbers (e.g. 123.php) raised a 500 internal server error page.

This had clearly not been a problem on the previous Windows (IIS) server running PHP 5.2, but was on this one. Now whether or not this was a PHP version difference or a server difference, I don't know.

I fixed it by renaming the file to contain at least 1 letter. So it is now named 123a.php.

Thursday, 11 November 2010

Dynamically Determine the Current Method / Function in C# and VB.NET

Needed to do some basic reflection the other day to easily determine the current method that was being executed in a VB ASP.NET application.

So here's the C# for it:

//Current method name
System.Reflection.MethodBase.GetCurrentMethod()
    .Name;

//Fully qualified name of the method's class
System.Reflection.MethodBase.GetCurrentMethod()
    .ReflectedType.FullName;

//Method's class name without Namespace
System.Reflection.MethodBase.GetCurrentMethod()
    .ReflectedType.Name;

//Namespace
System.Reflection.MethodBase.GetCurrentMethod()
    .ReflectedType.Namespace;

And the VB.NET:

'Current method name
System.Reflection.MethodBase.GetCurrentMethod(). _
    Name

'Fully qualified name of the method's class
System.Reflection.MethodBase.GetCurrentMethod(). _
    ReflectedType.FullName

'Method's class name without Namespace
System.Reflection.MethodBase.GetCurrentMethod(). _
    ReflectedType.Name

'Namespace
System.Reflection.MethodBase.GetCurrentMethod(). _
    ReflectedType.Namespace