Monday, November 17, 2008

IT priorities 2008/09

Source: ZDNet Asia IT Priorities Survey 2008/09

Monday, November 10, 2008

prism error on chrome...

chrome not ready for sap? or prism not ready for chrome?

Wednesday, November 5, 2008

Philippine Telcos' Wireless Mobile Broadband Comparison/Matrix


Smartbro Globe Visibility Sun Broadband
Connection/ GPRS/EDGE/ GPRS/EDGE/3G/ GPRS/EDGE/
Technology 3G/HSDPA HSDPA/Wiz Wi-Fi 3G/HSDPA








Plan A


Monthly Cost (Php) 799 799 799
Mobile hours 60 hrs 40 hrs 60 hrs
Max speed (bps) 2mb 3G 384k, hsdpa 1.8m 400k
Excess P10 /30 mins P5 /15 mins P0.30 / min
Free x 2 Wi-Fi hrs x




Plan B


Monthly Cost (Php) 999
999 999
Mobile hours not mobile
60 hrs Unlimited
Max speed (bps) 384k 3G 384k, hsdpa 1.8m 400k
Free unlimited hrs, canopy install
3 Wi-Fi hrs x




Plan C


Monthly Cost (Php) 1500 1499 1999
Mobile hours Unlimited 100 hrs Unlimited
Max speed (bps) 2m 3G 384k, hsdpa 1.8m 1.4m
Excess x P5 /15 mins x
Free x Unlimited Wi-Fi x




Prepaid


Usage Cost (Php) P10 /30 mins P5 /15 mins x
Modem Kit P2,500 P2,500 x
Max speed (bps) 2m 3G 384k, hsdpa 1.8m x
Free 5 hrs 1.5 hrs x

Delphi 2009 ??? !!!

Just when I thought Delphi was already obsolete and died, here comes Delphi 2009 with a lot of excellent reviews.

Borland Delphi may have died, CodeGear Delphi 2009 looks like a hit with a by line "The fastest way to build NATIVE Windows applications".

I'll watch retro Santa's videos first then download the trial. Let's see...

Tuesday, November 4, 2008

Solved Problem: SQL Error on Triggers with sub-triggers or sub-queries...

Trigger SQL Statement:
CREATE TRIGGER [dbo].[tr_batch_delete] ON [dbo].[tr_batch]
FOR DELETE
AS
BEGIN
DELETE FROM tr_month WHERE tr_year = (SELECT tr_year FROM Deleted) AND tr_month = (SELECT tr_month FROM Deleted) AND code_country = (SELECT code_country FROM Deleted)
DELETE FROM tr_factor WHERE tr_year = (SELECT tr_year FROM Deleted) AND tr_month = (SELECT tr_month FROM Deleted) AND code_country = (SELECT code_country FROM Deleted)
DELETE FROM tr_adjust WHERE tr_year = (SELECT tr_year FROM Deleted) AND tr_month = (SELECT tr_month FROM Deleted) AND code_country = (SELECT code_country FROM Deleted)
END;

Error:
Server: Msg 512, Level 16, State 1, Procedure tr_batch_delete, Line 5
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.

Solution:
Replace = with IN

Solved Problem: ODBC Error: "Connection is busy with results for another hstmt"

This error has bugged me for a while using Microsoft SQL with Delphi through an ODBC connection. OBDC can only have one active cursor at a time. By default, odbc only retrieves the first 20 records for a query. This error occurs if a query contains more than 20 records which are usually retrieved on demand. This is fine until a second query is executed using same connection/session, the error then pops-out.

I searched and bumped with MARS (Multiple Active Record Sets) articles and solutions but I found an easier one.

Solution:
Set the odbc rowset size to a larger number. If you set it to 200, then the first 200 records will be returned. If you set it to -1 then ALL records will be returned. This is not a good practice and performance will suffer if a query result set is large.

To set the rowset size with the BDE, do the following:

1. Click on your TDatabase component
2. In the object inspector, expand Params
3. Put in a Key of "ROWSET SIZE"
4. Put in the desired value

Changing the rowset size should work with other odbc connection components as well.

Thanks to Sean's post.