OS : Win 7 x64 Professional
IDE : Visual Studio 2008 Professional
EMU : Windows Mobile 6.1 SDK Professional
Framework : .NET Compact Framework 3.5
DB : MSSQL Server 2008 Professional
จากบทความ เขียนโปรแกรม Visual Studio 2008(.NETCF3.5) กับ Windows Mobile 6 ติดต่อกับ Database MSSQL Server 2008 โดยตรง (ไม่ได้ใช้ SQLCE) ที่สามารถRun ให้ pocket Device เชื่อมต่อกับ Database SQL server ได้โดยตรง ไม่ต้องผ่าน SQLCE แล้ว แต่พอกลับมา Run บน Windows Mobile 6 EMu ดันใช้ไม่ได้ซะงั้น ทั้ง ๆ ที่สามารถ Access File บนเครื่อง Server และเล่น Internet ได้แล้วแท้ ๆ
ใช้กับ PDA BlueBird ดึงข้อมูลมาใส่ DataGrid ได้ปกติ
เสียเวลาไป 5 ชม. จากการหาคำตอบจากอากู๋ ซึ่งได้รับคำแนะนำที่หลากหลาย เลยจะเรียบเรียง ส่วนหัวข้อที่จำเป็นต้องทำมาใส่ไว้ใน Blog เพื่อเผยแพร่เป็นวิทยาทาน (และกันตัวเองลืมเอง) เริ่มทำตามนี้
1. ต้องทำให้ตัว EMulator ติดต่อกับ Network ได้โดยตรง ไม่ต้องผ่าน ActiveSync ก่อน โดยไปที่หน้าต่างของ Emulator (ถ้าไม่เจอก็ run project ค้างไว้ ให้มีขึ้นหน้าต่างของ EMU) เลือกเมนู File->Configuration เพื่อเข้าหน้าจอ Configuration
เข้า menu config ที่หน้าจอ emulator
2. ที่ tab "Network" ให้ Check ที่ "Enable NE2000 PCMCIA Network adapter and bind to" แล้วพอกดตกลงมันจะไม่ Save แล้วฟ้องว่า ไม่ได้ติดตั้ง Virtual PC แล้วมี Link ให้เสร็จสรรพ
ติ้กถูก Enable แล้วกด OK มันจะไม่ให้ Save
เข้าไป Download VirtualPC ได้ ที่นี่ มันจะเป็น Version 2007SP1 (Windows Virtual PC ที่ให้มากับ Windows 7 ใช้ไม่ได้ต้องติดตั้งใหม่ แล้วถ้าใช้ Windows 64 Bit แนะนำให้ download 32 bit มาด้วย)
3. ถ้าเป็น Win7 x64 ให้ติดตั้ง Virtual PC 2007SP1 ตัว 64 bit ก่อนมันจะฟ้อง Error ตั้งแต่ขั้นตอนแรกเลย ตัว Setup Wizard ยังไม่มาด้วยซ้ำ ถ้าเกิดอย่างนั้นให้ติดตั้งตัว 32 bit แล้วหน้าจอ Setup Wizard จะใช้ได้ แต่มันไม่ยอมติดตั้งให้บอกว่าไม่ Support 64 bit แล้วค่อยกลับมาติดตั้งตัว 64 bit อีกรอบ คราวนี้ผ่านชัวร์ (อาจต้อง restart)
4. กลับไปที่หน้าจอ WinMo 6Emulator ไปติ๊ก Enable NE2000 bind to พอกด OK จะเห็นว่ามันไม่ฟ้อง Error แล้ว คราวนี้ก็ Set ค่าที่ตัว WinMo ให้เล่นเนต และ เข้า share folder ได้ เพื่อยืนยันว่ามันต่อ network แน่นอนแล้ว ที่ต้อง set ก็ตามด้านล่าง
4.1 ที่หน้า Home ไปที่่ Setting->Connection->Network Card เลือก "My Network Card connect to" เป็น Internet
เลือก "My Network Card connect to" เป็น Internet
4.2 คลิ้กที่ NE2000 Compatible Ethernet Adapter เพื่อเข้าไป Set ค่า IP Address, DNS, และ Gateway
Set ค่า IP Address, DNS, และ Gateway
4.3 กลับไปหน้า Home แล้วไปที่ Setting->Connections->Connections->Advanced-> Select Network เลือก Network Management ส่วนของ Connect to the internet และ Connect to private network ให้เป็น "My Work Network" ทั้งคู่
เลือก Network Management ส่วนของ Connect to the internet และ Connect to private network ให้เป็น "My Work Network" ทั้งคู่
4.5 ที่หน้า Network Management ส่วนของ Connect to the internet ให้คลิ้่ก Edit -> Proxy Settings แล้วติ๊กถูกที่ "This network connects to the Internet"
เลือก "This network connects to the Internet"
5. ลอง Test ดูว่าเข้า Internet และเข้าส่วน file sharing ของ windows ได้หรือเปล่า
ทดสอบต่อ Internet ด้วยการเปิด google
ทดสอบเข้าใช้ File Sharing จากเครื่อง Server (เข้าด้วย IP ไม่ได้ ต้องเข้าด้วยชื่อ ประหลาดแท้)
6. คราวนี้ลอง Run โปรแกรมเพื่อทดสอบว่าเชื่อมต่อกับ SQL Server ได้หรือยัง ปรากฏว่า ยังไม่ได้แฮะ
ใช้ Data source เป็น IP Address ขึ้น Error Platform Exception
พอเปลี่ยน Data Source เป็นชื่อเครื่อง Error ก็เปลี่ยนเป็น SqlException
ที่น่าสงสัยก็คือ ตอน Run กับตัว Pocket Device BlueBird ก็ไม่เกิด Error ใด ๆ ทั้งแบบใช้ IP Address และ แบบใช้ ชื่อเครื่อง แสดงว่า ตัว Pocket Device มันต้องมีอะไรแตกต่างจากตัว Emu เป็นแน่ ลองถามอากู่ถึง Error ทั้งสองแบบหมดไปกว่า 2 ชม.ก็เจอประเด็นเกี่ยวกับ Error "PlatformnotFoundException" ที่นี่
เมื่อลองตรวจสอบแล้วพบว่าเป็นปัญหาเกี่ยวกับเรื่อง Callation หรือประมาณเรื่องการรองรับภาษาของตัว Database คร่าว ๆ ว่าให้แก้เป็น Latin หรืออะไรสักอย่าง แต่ database เราเป็น Thai (ซึ่งก็ควรเป็นอย่างนั้น)
Database Collation เป็น Thai_CI_AS
แล้วก็เอะใจไปเห็นตัว Pocket Device มันติดตั้ง Program "PDAMobizThaiEnabled" เอา ประมาณว่าลงภาษาไทยให้เครื่องจากการวิเคราะห์แล้วน่าจะเกิดจากปัญหาWinMo 6 Emu ไม่ได้ลงภาษาไทย จึงไม่รอช้าจัดการติดตั้งเข้าไปโลด เย้.....................ใช้ได้แว้วววววววววววววววว.....................
ใช้ Data Source เป็น IP Address สามารถดึงข้อมูลจาก SQL Server มาใส่ใน Grid ได้อย่างสวยงาม (แต่พอเปลี่้ยน Data Source เป็นชื่อกลับ Error ซะงั้น)
ถูกใจ ใช้ได้ผล ก็กด LIKE & Share ได้นะคร้าบบบบ....
ตอบลบผมลง Microsoft Virtual PC 2007 SP1 แล้วแต่ยัง Enable NE2000 PCMCIA Network adapter ไม่ได้ มันถามหา Visual PC 2007 อีกเหมือนเดิมครับ ต้องตั้งค่า Visual PC 2007 ด้วยไหมครับ
ตอบลบลองทำดูหลายรอบลบลงใหม่ก็ไม่ได้เหมือนเดิม ลองจนปวดตับเลย ครับ 555
พรุ่งนี้ช่วงบ่ายว่าง เดี๋ยว remote ไปดูให้นะครับ
ลบOK ครับพร้อมทั้งวันเลยครับผม
ลบตอนนี้ใช้ได้หมดแล้วครับทั้ง Emulator และ device ผมลงตามนี้เลยครับ http://www.petenetlive.com/KB/Article/0000241.htm อิอิ
ลบ