Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > Client Script Forum > บันทึกข้อมูลฟิล์ดวันที่ด้วย JavaScript ไม่ได้ มันขึ้น Error ช่วยด้วยครับ



 

บันทึกข้อมูลฟิล์ดวันที่ด้วย JavaScript ไม่ได้ มันขึ้น Error ช่วยด้วยครับ

 



Topic : 047998



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์




ช่วยด้วยครับ บันทึกข้อมูลฟิล์ดวันที่ด้วย JavaScript ไม่ได้
<%
var dtNow = new Date();
tSQL = "SELECT TOP 1 t.* FROM [A Test] t";
var cn = Server.CreateObject("ADODB.Connection");
cn.Open(MM_CPDB_STRING);
var rs = Server.CreateObject("ADODB.Recordset");
rs.Open(tSQL,cn,1,2); //adOpenKeyset, adLockPessimistic
rs.AddNew();
rs.Fields("dt").Value = dtNow;
rs.Fields("A1").Value = "TT";
rs.Update();
rs.Close();
cn.Close();
%>

พอรันผ่าน Brower IE แล้วขึ้น Error อย่างนี้
Technical Information (for support personnel)

Error Type:
Provider (0x80020005)
Type mismatch.
/carpool/test.asp, line 18 บรรทัดที่ 18 คือ rs.Fields("dt").Value = dtNow;


Browser Type:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

Page:
GET /carpool/test.asp


พอเอา Line 18 ออกก็ผ่าน ไม่มี Error



Tag : Ms SQL Server 2005, JavaScript







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-08-31 20:50:27 By : watcharop View : 1749 Reply : 10
 

 

No. 1



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


ข้อมูลเพิ่มเติม
Database Server : MS SQL Server 2000
Web Server: IIS 5.1
ฟิล์ด dt เป็นฟิล์ดแบบ datetime






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-31 20:57:39 By : watcharop
 


 

No. 2



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


เงียบจัง
ยังไม่เคยมีใครใช้ JavaScript
เพื่อบันทึกข้อมูลวันที่เลยรึเนี่ยะ
....


ABC
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-01 15:45:12 By : watcharop
 

 

No. 3



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


ยังรอคำตอบจากคนใจดีอยู่นะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 12:59:32 By : watcharop
 


 

No. 4



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


เป็น asp classic ที่เขียนด้วย javascript อ่ะดิ เลิกเขียนไป 8 ปีแล้ว

เพราะตัวอย่างหายากมาก ส่วนใหญ่จะใช้ vbscript กัน

มันติดที่ datetime น่ะ เพราะ sql server มันไม่รู้จัก type datetime ของ javascript

ดังนั้นเราต้องส่งไปเป็น string โดยกำหนด format ของวันที่นั้นไปด้วย เช่น

Code (JavaScript)
rs.Fields("dt").Value = "Convert(SmallDatetime, "15/8/2010", 103)"


และดูเหมือน object dtNow ของคุณยังไม่มีการ assign value ให้มันนะ

Code (JavaScript)
dtNow.setFullYear(2010,8,15)

// และ

dtNow.getFullYear() 

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 13:36:28 By : tungman
 


 

No. 5



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


เบื้องต้นต้องขอขอบคุณครับ

Code (JavaScript)
<%
var dtNow = new Date();
tSQL = "SELECT TOP 1 t.* FROM [A Test] t";
var cn = Server.CreateObject("ADODB.Connection");
cn.Open(MM_CPDB_STRING);
var rs = Server.CreateObject("ADODB.Recordset");
rs.Open(tSQL,cn,1,2); //adOpenKeyset, adLockPessimistic
rs.AddNew();
rs.Fields("dt").Value = "Convert(SmallDatetime, '7/8/2010', 103)";
rs.Fields("A1").Value = "TT";
rs.Update();
rs.Close();
cn.Close();
%>


แต่ก็ยังเดี้ยงอยู่เหมือนเดิม
ลองแก้เป็นข้างบน ก็ขึ้น Error ว่า
Quote:
Provider error '80020005'
Type mismatch.
/carpool/test2.asp, line 18


ซึ่ง line 18 ก็คือ rs.Fields("dt").Value = "Convert(SmallDatetime, '7/8/2010', 103)";

ส่วนเรื่องที่ผมไม่ได้ assign dtNow เพราะตอนกำหนด var dtNow = new Date()
มันได้เป็นวันที่ปัจจุบันครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 14:38:01 By : watcharop
 


 

No. 6



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


ทั้งเครื่องผม กับเครื่อง Server ทุกตัว (IIS, MS SQL Server) ต่างกำหนด Regional Setting เป็น English (United State) หมด
จึงไม่น่ามีปัญหาเรื่องปี
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-15 14:40:12 By : watcharop
 


 

No. 7



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ผมลองเขียน asp classic with javascript ด้วย oop แล้ว

มันอุบาทว์กว่าที่คิดซะอีก เห็นแล้วไม่น่าเขียนเลย

Default.asp
<%@ Language="javascript" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!-- #Include File="ClassSample.asp" -->

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Asp Classic With JavaScript</title>
</head>
<body>
<%
    var obj = new Sample();
    obj.Hello();
%>
</body>
</html>

ClassSample.asp
<%
// for java script only

function Sample() {
    this.Hello = Hello;
}

function Hello() {
    Response.Write("Hello World");
}
%>


เห็นโค้ดมั้ย เล่นเอาเซ็งไปเลย ถ้าจะเขียน asp ไปเขียนด้วย vbscript จะดีกว่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-16 20:48:23 By : tungman
 


 

No. 8



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


รูปแบบการ insert ด้วย ADODB.Command + ADODB.Parameter

Code (ASP)
<%
    Dim rs, cmd, prm, field
    Dim strSQL    
    Dim adParamInput, adCmdText, adInteger, adVarChar

    adParamInput = &H0001
    adCmdText = 1
    adInteger = 3
    adVarChar = 200

    strSQL = "INSERT INTO [Book] (strPublishersName, lngBookID) VALUES (?, ?)"

    Set cmd = Server.CreateObject("ADODB.Command")
    
    cmd.ActiveConnection = "DSN=vboo_pubs"     'connection string
    cmd.CommandText = strSQL
    cmd.CommandType = adCmdText
    cmd.Prepared = True
    
    Set prm = Server.CreateObject("ADODB.Parameter")
    prm.Type = adVarChar
    prm.Size = 20
    prm.Direction = adParamInput 
    prm.Value = "Algodata Infosystems"
    cmd.Parameters.Append(prm)
    
    Set prm = Server.CreateObject("ADODB.Parameter")
    prm.Type = adInteger 
    prm.Size = 20
    prm.Direction = adParamInput 
    prm.Value = 1059
    cmd.Parameters.Append(prm)
    
    cmd.Execute()
%>


รูปแบบการ insert ด้วย ADODB.Recordset

Code (ASP)
<%
        Dim conn, rs
        Dim tblName, adOpenKeyset, adLockOptimistic, adCmdTable
        Dim ArrFlds, ArrValues

        tblName = "Book"
        adOpenKeyset = 1
        adLockOptimistic = 3
        adCmdTable = 2

        ArrFlds = Array("strPublishersName", "lngBookID")
        ArrValues = Array("tungman", "000001")        

        Set conn = Server.CreateObject ("ADODB.Connection")
        Set rs = Server.CreateObject ("ADODB.Recordset")

        conn.open "DSN=vboo_pubs"     'connection string
        rs.Open tblName, conn, adOpenKeyset, adLockOptimistic, adCmdTable

        rs.AddNew ArrFlds, ArrValues
        rs.Update 

        rs.Close
        Set rs = Nothing

        conn.close
        Set conn = Nothing
%>


ด้านบนก็วิธีการใช้ความสามารถของ odbc object ยังมีวิธีอื่นๆ อีก ลองเข้าไปดูใน toturial ได้


ประวัติการแก้ไข
2010-09-16 21:12:23
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-16 21:06:07 By : tungman
 


 

No. 9



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


ดูเหมือนระหว่างการใช้ JavaScript และ vbscript กับ object ในกลุ่ม ADODB
จะทำได้เหมือนกัน
เพียงแต่จะมี JavaScript จะมีปัญหาเมื่อต้องการอัพเดตข้อมูลประเภทวันที่นะ

เซ็ง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-17 09:24:28 By : watcharop
 


 

No. 10



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


สุดท้ายขอบคุณ ท่านเทพ tungman ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-09-17 09:26:10 By : watcharop
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : บันทึกข้อมูลฟิล์ดวันที่ด้วย JavaScript ไม่ได้ มันขึ้น Error ช่วยด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่