เพิ่มข้อมูลเข้า SQL จากFOX

   
ลองทำดูแล้ว ทำไม่ได้ ขอคำแนะนำหน่อยครับ

STORE SQLCONNECT('SQL','SA','') TO gnconnhandle
IF gnconnhandle <=0
=messagebox('cannot make connetion 106',16,'SQL connect Error !!')
ELSE
=messagebox ('connection made ',48,'SQL Connect Message')
? SQLEXEC(gnconnhandle,"insert into stmassql (stkcod,stkdes,stkdes2,stktyp)values ('aaa','bbb','ccc','ddd')")
= SQLDISCONNECT(gnconnhandle)
endif
sutee
6 ธ.ค. 46 เวลา 9:28:29 น. --> 203.149.43.172,
   
   
? SQLEXEC(gnconnhandle,"insert into stmassql (stkcod,stkdes,stkdes2,stktyp)values ('aaa','bbb','ccc','ddd')")
เอา ? ออก เป็น
SQLEXEC(gnconnhandle,"insert into stmassql (stkcod,stkdes,stkdes2,stktyp)values ('aaa','bbb','ccc','ddd')")
....
6 ธ.ค. 46 เวลา 10:18:41 น. --> 203.118.85.116,
  
   
ถ้าเป็นผมนะ
1. ตรวจสอบดูก่อนว่า Connection ได้หรือยัง โดยที่ gnconnhandle ต้อง >= 0
2. ถ้า Connection สำเร็จ ดูว่า ที่ ?SQLEXEC() ได้ค่าอะไร ถ้า >= 0 ก็ถือว่าสำเร็จ แต่ถ้าได้ -1
ก็จะ สั่ง aerror(xxx) และ disp memo like xxx เพื่อดู error message ที่ส่งกลับมา แล้วก็ค่อยๆ แก้ไขต่อไป
3. จากประโยคคำสั่งที่เห็น (SQLEXEC) คุณพิมพ์ values ติดไปกับ ) ต้องเว้นหน่อยครับ

ลองพยามดูนะครับ
vfpX
6 ธ.ค. 46 เวลา 10:29:14 น. --> 203.156.24.46,
  
   
ลองทำตามแล้ว เวลาqueryบนsql ไม่พบ
sutee
6 ธ.ค. 46 เวลา 10:37:43 น. --> 203.149.43.172,
  
   
ถ้าทุกอย่างไม่ error แต่ไม่พบข้อมูล บน SQL server
คุณลองสั่ง ?SQLCOMMIT(gnconnhandle) เพราะ transaction mode อาจเป็นแบบ batch ต้องมีการ commit หรือ rollback อีกทีหนี่ง
vfpX
6 ธ.ค. 46 เวลา 10:41:54 น. --> 203.156.24.46,
  
   
ตรวจสอบดูก่อนว่า Connection ได้หรือยัง โดยที่ gnconnhandle ต้อง >= 0 ok.
connect แล้ว

2.ได้ -1 ใช้aerror(xxx) และ disp memo like xxx เพื่อดู error message ที่ส่งกลับมา
ไม่เป็น ขอคำแนะนำ
3. ลองแล้วไม่ได้ครับ
sutee
6 ธ.ค. 46 เวลา 10:44:42 น. --> 203.149.43.172,
  
   
ได้ -1 ตอน SQLexec แสดงว่ามีปัญหากับคำสั่ง SQL ครับ ลองสั่ง เป็น step ที่ Command windows ของ vfp ดังนี้
gnconnhandle = SQLCONNECT('SQL','SA','')
?gnconnhandle
? SQLEXEC(gnconnhandle, sqlcommand ของคุณ)
* จะได้ -1 ตรงนี้ ให้สั่ง
aerror(xxx)
disp memo like xxx
* จะเห็นผลของ error message ลองดูว่า error เกี่ยวกับอะไร
vfpX
6 ธ.ค. 46 เวลา 10:54:16 น. --> 203.156.24.46,
  
   
eror string or binary data would be truncated
sutee
6 ธ.ค. 46 เวลา 11:11:16 น. --> 203.149.43.172,
  
   
แนะนำให้ลอง
1. ตรวจสอบโครงสร้างของตาราง กับ ข้อมูลที่จะเพิ่มเข้าไป
2. ถ้ายังไม่ได้ ลอง เอาค่า 'aaa','bbb','ccc','ddd' ไปทำเป็นตัวแปร
ex:
ls_val1 = 'aaa'
ls_val2 = 'bbb'
ls_val3 = 'ccc'
ls_val4 = 'ddd'

แล้ว สั่ง insert ... อีกที โดยใช้ค่าตัวแปรแทน ค่าคงที่ ( อย่าลืมใส่ ?หน้าตัวแปรด้วยล่ะ )
vfpX
6 ธ.ค. 46 เวลา 11:21:31 น. --> 203.156.24.46,
  
   
ปัญหาน่าจะอยู่ที่การที่คุณยังไม่สามารถติดต่อกับ SQL Server ได้นั่นเองจึงทำให้ gnconnhandle = -1
(เป็นผลลัพธ์ที่ได้จากคำสั่ง STORE SQLCONNECT('SQL','SA','') TO gnconnhandle)

-ลองตรวจสอบ DSN (หรือ Connection ) 'SQL' ที่คุณใช้ว่าคุณ Setup ไว้ถูกต้องหรือไม่ ???
เดาสุ่ม
6 ธ.ค. 46 เวลา 11:43:45 น. --> 203.121.146.180
  
   
ติดต่อกับ sql ได้แล้วครับ แต่แจ้ง error ตอนส่งข้อมูลไป sql

string or binary data would be truncated

ถึงทำเป็นตัวแปรก็ยังไม่ได้
โครงสร้างฐานข้อมูลเป็น varchar 10
sutee
6 ธ.ค. 46 เวลา 11:52:01 น. --> 203.149.43.172,
  
   
ได้แล้วครับ เปลี่ยน data type เป็น char
แต่ถ้าอยากใช้เป็น varchar ต้องทำอย่างไรครับ
sutee
6 ธ.ค. 46 เวลา 11:58:24 น. --> 203.149.43.172,
  
   
เอ...ยังไงดีละเนี่ย ??

คุณลง MDAC 2.6 Service Pack 1 (SP1),MDAC 2.6 Service Pack 2 (SP2) SQL Server drivers, MDAC 2.7 SQL Server drivers. รึเปล่าครับ ? ถ้าใช่ละก้อ มันเป็น BUG ครับ...

http://support.microsoft.com/default.aspx?scid=%2Fservicedesks%2Fbin%2Fkbsearch.asp%3FArticle%3D318606

Solution
ก็หา Microsoft SQL Server 2000 Service Pack 3 หรือ ลง MDAC 2.5 แทน

ถ้าคาดคะเนผิดค่อยว่ากันใหม่ครับ
เดาสุ่ม
6 ธ.ค. 46 เวลา 12:22:41 น. --> 203.121.146.180
  
ขอเชิญร่วมตอบคำถามครับ
 
ผู้ตอบ :
รหัสผ่าน :
รูปภาพ :
คำตอบ :