Category Database

[SQLite] System.Data.SQLite.SQLiteConnection cannot be cast to …

C# Logo

เวันนี้เขียนโปรแกรม C# กับ SQLite อยู่ดีๆ Bulid ผ่านะ แต่ Runtime Error โดยมี Message แจ้ง ดังนี้ [A]System.Data.SQLite.SQLiteConnection cannot be cast to [B]System.Data.SQLite.SQLiteConnection. Type A originates from ‘System.Data.SQLite, Version=1.0.92.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139’ in the context ‘Default’ at location ‘C:\Users\Chatr_000\Desktop\InvConfig(AutoRegisDLL)\InvConfig\bin\Release\System.Data.SQLite.dll’. Type B originates from ‘System.Data.SQLite,…

[DB2] SELECT TOP(1) IN DB2

IBM DB2

จริงๆวางโครงบทความนี้มานานและ แต่เพิ่มจะมีโอกาศได้เขียนจริงๆจังๆ ซะที เข้าที่ปัญหาเลย คือ ว่าเราต้องการ Query เพื่อดึงข้อมูลในแถวแรกขึ้นมาก หากเป็น MySQL, MS SQL Server เราสามารถใช้คำสั่ง TOP(จำนวนแถวที่ต้องการได้เลย) แต่ถ้าเป็น DB2 จะมีคำสั่ง (ใช้ได้กับ DB2 8.1 ขึ้นไป) โดยเพิ่มเข้าไป ดังนี้ครับ FETCH FIRST 1 ROW ONLY ตัวอย่างการใช้งานจริง โดยเทียบ SYNTAX เมื่อใช้กับ MS SQL Server ครับ

[SQL SERVER] SELECT ชื่อ Column จากตาราง

Microsoft SQL Server

สามารถเอา Code ชุดนี้ไปใช้งานได้เลย หรือจะทำเป็น Code Snippets เอาไปใช้งานได้เลย โดยเป็นการดึงข้อมูลมาจาก view INFORMATION_SCHEMA รูปแบบคำสั่ง ตัวอย่างการใช้งาน สำหรับ Tips อื่นตามอ่านได้จาก Tag SQL Server ได้เลยครับ Reference

[SQL SERVER] Invalid character value for cast specification

Microsoft SQL Server

วันนี้ผมแก้ App เก่าๆของที่บริษัทแล้วเกิดเจอปัญหา Invalid character value for cast specification ตอนนั้นไล่ข้อมูลแทบตาย เจอมวลมหา Function Call และไปพบว่ามันผิดที่วันที่ (Date) ที่มีการจัด Format ผิด โดยไอ้เจ้าปัญหา Invalid character value for cast specification มันมีความหมายว่าข้อมูลทางเราเป็น input ส่งให้ Database แล้วตัว DBMS เองไม่สามารถแปลงข้อมูล และเก็บลงฐานข้อมูลได้นั้น ซึ่งสาเหตุอาจจะเกิดจากหลายๆสาเหตุ เช่น ข้อมูลประเภท Date ที่ Format ผิด หรือข้อมูลประเภท…

[MSSQL] Database log file คือ อะไร

Microsoft SQL Server

สำหรับฐานข้อมูลของทุกๆค่าย ตัวเนื้อของ Database มีไฟล์ที่สำคัญอยู่ 2 ตัว  ได้แก่ คราวนี้มาดูที่ตัวของ MS SQL บ้างดีกว่า ว่าไฟล์กลุ่มนี้มีอะไรบ้าง จากหัวเรื่อง Blog นี้จั่วหัวในเรื่องของ Database Log File ไว้ เรามาดูกันดีกว่ามันมีการทำงานอย่างไร เริ่ม Database ทำงาน รู้แล้วว่าอะไร ที่มันต้อง Log บ้าง คราวนี้ลองมาดูโครงสร้างแบบ Logical(Virtual Log) ของ Log กัน โดย Log แต่ละตัวมี ID ประจำของมัน ก็ คือ…

ข้อควรสังเกตุ และระวังในการ Migrate ข้อมูลจาก Microsoft SQL Server ไป IBM DB2 10.5

IBM DB2

หลายคนๆ คงอ่านหัวข้อแล้ว อาจจะงง 55 เพราะว่าส่วนใหญ่มีแต่การ Migrate ข้อมูลจาก IBM DB2 ไป Microsoft SQL Server กัน แต่นี่ คือ Require ของลูกค้า (ลูกค้า คือ พระเจ้า) โดยผมขอสรุป สิ่งที่ต้องสังเกตุ และระวังในการย้ายข้อมูลจาก Microsoft SQL Server ไป IBM DB2 ซึ่งจะส่งผลให้ Application ที่กำลังพัฒนาอยู่เกิดผิดพลาดได้ ดังนี้

SELECT ซ้อน SELECT

Microsoft SQL Server

หลายครั้งที่เราได้โจทย์ หรือปัญหามาแก้โดยใช้วิธีการ Query จากฐานข้อมูลมา ซึ่งมีรูปแบบการ Query หลายแบบ ได้แก่ การเขียน JOIN ตาราง, UNION หรือ ทำเป็น Sub Query เป็นต้น ในวันนี้ผมขอนำเสนอวิธีการเขียน SELECT IN SELECT ซึ่งเป็นวิธีการเขียน Query แบบหนึ่งที่ช่วยแก้ปัญหาได้มากมาย และลดการเขียน Coding ที่ไม่จำเป็นได้อีก ตัวอย่างปัญหา เราต้องการดูข้อมูลการจ่ายดอกเบี้ยทั้งหมด เพื่อนำมาออกรายงาน โดยมีเงื่อนไขดังนี้ ข้อมูลที่ใช้กับตัวอย่างนี้ ขั้นตอนการแก้ปัญหา (ถ้ามีการเขียน SQL ผมขอใช้ SYNTAX ของ SQL Server นะครับ)…

SQL JOINS

ตอนแรกทำงานไป ทำงานมา ก็เกิดสงสัยว่า JOIN นี่มีกี่แบบ โดยมีคำถามหลายข้อเลย โดยผมขอสรุปเป็นข้อๆ ดังนี้คำถาม: LEFT JOIN กับ LEFT OUTER JOIN ต่างกันอย่างไรคำตอบ: ไม่ต่างกันเลย การทำงานเหมือนกัน คำถาม: INNER JOIN กับ OUTER JOIN ต่างๆกันอย่างไรคำตอบ: INNER JOIN  เอาข้อมูลมาที่เหมือนกันท้ังสองฝั่งมาเทรวมกัน(Intersect) กัน แต่ OUTER JOIN เป็นการเทข้อมูลทั้งฝั่งใดฝั่งหนึ่ง หรือทั้งสองฝั่งมารวมกัน(Union) คำถาม: แล้วมีการ JOIN แบบอื่นๆ หรือไม่คำตอบ: มี โดยผมขอเกริ่นสรุปรูปแบบการ JOIN ของ TABLE ก่อน เพื่อเป็นการท้าวความหลังก่อนนะครับ…

Disable auto commit ในโปรแกรม TOAD for DB2

หลังจากทำงานมา 1 ปี ผมก็ได้มีโอกาศอยู่ Standby รอรับปัญหาจาก User วันแรก ซึ่งวันแรกเนี่ยแหละ ผมเขียน Query ผิด ลืม Where และเข้าใจว่าโปรแกรมที่ใช้ Toad for DB2 ตัวใหม่ ซึ่งลองเอามาใช้แทนตัว WinSQL ที่มันเก่ามากแล้ว มัน Default Auto Commit = off แล้ว แต่มันปรากฏว่าไม่ใช้ ดังนั้นผมจึงขอนำเสนอวิธีการปิด Auto Commit สามารถดูตามรูปภาพที่แนบมาได้เลยครับ ปล. วิธีการนี้สามารถประยุกต์ใช้กับโปรแกรม Toad for SQL Server,…

[SQL] การบอกลำดับของ Record จากการ Select ข้อมูล

วันนี้มีเพื่อนที่ทำงานถามว่าจะเพิ่มคอลัมน์ เพื่อบอกลำดับของข้อมูลอย่างไร เพราะใน DB ก็ไม่ได้เก็บอยู่แล้ว จะเขียนใน Query หรือ มา Loop และ Count เองใน Code ดี ข้อมูลใน DB (Input) Firstname   | Lastname   | Salary กอไก่       | ไข่เจียวหมูสับ | 50,000 ขอไก่       | เกิดก่อนไก่  …