Posted on Mar 26, 2008, 10:56 am, by นพ, under
MSSQL.
เขียน MSSQL store procedure เพื่อทำ Crosstab หรือ Pivot Table วันก่อน มีโอกาสต้องเขียน การแสดงผลข้อมูลเป็นแบบ แนวนอน หรือที่เค้าเรียกกันว่า Crosstab แต่เนื่องด้วย ฐานข้อมูลที่ใช้ มันเป็น MSSQL 2000 มันไม่มีพวก Pivot Table มาให้ (Access ยังมีเลย) เลยต้องหาเอาเอง ไปเจอเว็บนึงเค้า เขียนเป็น Store Procedure ไว้ เอามาใช้ Work เลยทีเดียว ตอบโจทย์ได้เลย ตัวอย่างของ Data Year Region Income Y2007 North 20 Y2007 South 10 Y2007 East 30 Y2006 North 10 Y2006 South [...]
Posted on Feb 27, 2008, 1:45 pm, by นพ, under
MSSQL.
วันนี้มีความต้องการสร้างฐานข้อมูลวันที่ในตารางของ MSSQL แต่ให้ไปนั่ง Key เอาหรือไป Copy เอาคงไม่ไหว เลยเขียน Script เอาไว้สร้างวันที่เอาไว้เผื่อใครเอาไปใช้ครับ declare @i int declare @CAL_DATE datetime SET @i=0 while (@i < 1825) begin — เอาวันพรุ่งนี้เข้า set @CAL_DATE = (select replace(CONVERT(varchar(11), GETDATE()+@i, 111),’/',’-')) insert into MS_CALENDAR (CAL_DATE) values (@CAL_DATE) — เอาวันพรุ่งนี้เข้า — เอาเมื่อวานเข้า set @CAL_DATE = (select replace(CONVERT(varchar(11), GETDATE()-@i, 111),’/',’-')) insert into MS_CALENDAR (CAL_DATE) values (@CAL_DATE) [...]
Posted on Feb 11, 2008, 1:07 pm, by นพ, under
MSSQL.
ทำการ Add Server ด้วย System Store Procedure ก่อน ด้วยคำสั่ง use Master EXEC sp_addlinkedserver @server = servername , @provider = ‘MSDASQL’, @provstr = ‘DRIVER={SQL Server};SERVER=servername;UID=user;PWD=password;’ หลังจากนั้น ก็รัน SP เพื่อ ปรับ Config Data Access EXEC sp_serveroption ’178.55.1.3′, ‘data access’, ‘TRUE’ ถ้าไม่รันคำสั่งนี้ จะขึ้น Error อันนี้ servername is not configured for DATA ACCESS. เท่านี้เราก็สามารถเรียก Table ของ [...]
Posted on Dec 13, 2007, 4:11 pm, by นพ, under
MSSQL.
Script สำหรับสร้าง Datadict สำหรับ MSSQL select b.colid as [ID] , a.NAME as TABLE_NAME , b.name as COLUMN_NAME , c.name as [TYPE], b.length as SIZE from sysobjects a,syscolumns b,systypes c where a.id = b.id and a.xtype = ‘U’ and a.name in (‘MS_TRANSPORT_MODEL’) and b.xusertype = c.xusertype
Posted on Dec 12, 2007, 11:59 am, by นพ, under
MSSQL.
Could not allocate ancillary table for view or function resolution. The maximum number of tables in a query (260) was exceeded. เหตุเกิดที่ว่าผมต้องสร้าง View เพื่อทำการตรวจสอบผลการทำงานทั้งหมดของระบบ เนื่องจากต้องไปวิ่งไล่ Table แทบทั้ง Database เพื่อทำการตรวจสอบความถูกต้องของข้อมูล ปรากฏว่ามัน Join กันเยอะเกินไป จากหลายๆ Table มันเลย แจ้งว่า The maximum number of tables in a query (260) was exceeded. คือ เลือก Table มามากเกินไปใน Query วิธีแก้ไขของผมคือไปสร้าง Function มาแทน [...]
Posted on Dec 11, 2007, 1:32 pm, by นพ, under
MSSQL.
ไม่ได้เขียน Blog เสียนาน เพราะไม่ค่อยมีเรื่องอะไรใหม่ๆ ในชีวิต แล้วก็หนีไปบวชมา เลยไม่ได้เขียนมาซะนาน วันนี้ได้โจทย์ว่าต้อง Delay การแสดงผล หรือ การอัพเดตข้อมูลชุด หนึ่ง ก่อนอีกชุดนึงมา ลองค้นๆ MSSQL มี คำสั่งในการชะลอการทำงาน ดังนี้ waitfor delay ’00:00:01′ อันนี้คือ รอ 1 วินาที ตัวอย่าง select getdate()waitfor delay ’00:00:02′ select getdate() ผลลัพท์ 2007-12-11 13:26:19.1632007-12-11 13:26:21.180 ต่างกัน 2 วินาที เสร็จครับ
Posted on Aug 16, 2007, 11:48 am, by นพ, under
MySQL.
เมื่อ MySQL เกิด Error อย่างนี้ คือเกิดอะไรขึ้น (MySQL4.0) เหตุมันเกิดที่ มาวันนึงผมไม่สามารถ Start MySQL Service ได้ เนื่องจากผมไป Skip InnoDB ใน my.ini แล้วก็ไม่ได้ Restart MySQL Service แล้วเครื่อง ทำการ Update Windows ซึ่ง Windows ก็จับ Restart ตัวเองตอนตี 3 พอ Restart เสร็จก็ Start MySQL Service ไม่ได้ จะขึ้น Error System error 1067 has occurred
Posted on Jul 20, 2007, 12:04 pm, by นพ, under
MSSQL.
ไม่ได้เขียนมาซะนานเนื่องจากงานยุ่ง วันก่อนมีพี่คนนึงถามว่า “เอ๊ะ ใน MSSQL มี Function Hex To Decimal และ Decimal to Hex มั้ย?” ผมก็เอาเลยเริ่มค้นหา ก็ทำให้รู้ว่ามันไม่มี Function นี้ในตัวของมันเอง ต้องเขียนเอง เลยลองค้นๆใน Google ดู ก็พบ Function ที่ Work!! ลองเอาไปใช้งานกันดูครับ
Posted on Jul 3, 2007, 11:08 am, by นพ, under
Oracle.
การเขียน ASP เพื่อเรียกดูข้อมูลจาก Oracle นั้นอาจจะไม่เหมือนการเขียนทั่วไป ซึ่งตอนลงแรกๆ อาจจะมีปัญหาเรื่องความเข้าใจ และ วิธีการเขียน เลยมาเขียนเอาไว้กันลืม บางทีเผื่อมีใครต้องการเขียนแล้วติดปัญหาเหมือนกัน
Posted on Jun 28, 2007, 11:41 am, by นพ, under
MSSQL.
CREATE FUNCTION dbo.Split(@String nvarchar(4000), @Delimiter char(1)) RETURNS @Results TABLE (Items nvarchar(4000)) AS BEGIN DECLARE @INDEX INT DECLARE @SLICE nvarchar(4000) — HAVE TO SET TO 1 SO IT DOESNT EQUAL Z — ERO FIRST TIME IN LOOP SELECT @INDEX = 1 WHILE @INDEX !=0 BEGIN — GET THE INDEX [...]