รวบรวม Code ต่างๆนานา ที่เคยพบเจอมาจากประสบการณ์

UNDERGROUND PROGRAMMER PRESENT

วันศุกร์ที่ 17 สิงหาคม พ.ศ. 2561

SQL SERVER#12 เมื่ออ่านไฟล์จาก Excel แล้วข้อมูลมาไม่ครบเพราะข้อความยาวเกินไป

เขียนโปรแกรมดึงข้อมูลจาก Excel มาแสดง..ข้อมูลก็ขึ้นนะ แต่บางข้อความดันมาไม่ครบ มันเกิดจากอะไร? แล้วจะทำการแก้ไขอย่างไง?...มาว่ากัน 👀

สืบเนื่องจากบทความ  SQL SERVER#3 Read excel and insert to table 
ที่กล่าวถึงการอ่านข้อมูลจากไฟล์ Excel เข้าสู่ตารางหรือนำไปใช้งานอื่นๆ ผ่านทาง Microsoft.Ace.OLEDB โดยใช้คำสั่ง

ก็ใช้งานกันไปตามปกติ แต่ทีนี้ก็มีเหตุการณ์ ที่เป็นปัญหาคือว่า มีบางข้อมูลในไฟล์ ที่มีขนาดความยาวของข้อความเกินกว่า 255 ตัวอักษร ทำให้เวลาดึงข้อมูลออกมาแสดงนั้นข้อมูลแสดงไม่ครบถ้วน ซึ่งนั่นแหละก็คือปัญหา 😕

มันเกิดจากอะไร ?
ก็คือว่าไอ่เจ้า ACE Driver เนี๊ยะมันได้ทำการจำกัดข้อความต่อคอลัมน์ ไว้ที่ 255 ตัวอักษร พอมันพบว่าเกินก็จึงไม่ดึงมาแสดงให้

แก้ไขยังไง ?
เอาไป 1 วิธีการ ก้คือการเข้าไปแก้ไขค่าเริ่มต้นสำหรับ Excel engine โดยมีขั้นตอนดังนี้

1. เข้าไปที่ Registry Editor จากนั้นให้ทำการเข้าไปที่
  • For 64 bit Windows (64 bit office) 
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel
  • For 32 bit Windows (32 bit office)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel



2. ให้ทำการแก้ไขค่า TypeGuessRows ในส่วนของ Value data ให้เป็น 0


จบละ 😎😎

ไม่มีความคิดเห็น:

แสดงความคิดเห็น