|  | 
	                
  
    | 
	 
        บันทึกข้อมูลฟิล์ดวันที่ด้วย JavaScript ไม่ได้ มันขึ้น Error ช่วยด้วยครับ     |  
    |  |  
 
              
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ข้อมูลเพิ่มเติม Database Server : MS SQL Server 2000
 Web Server: IIS 5.1
 ฟิล์ด dt เป็นฟิล์ดแบบ datetime
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-08-31 20:57:39 | By :
                            watcharop |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | เงียบจัง ยังไม่เคยมีใครใช้ JavaScript
 เพื่อบันทึกข้อมูลวันที่เลยรึเนี่ยะ
 ....
 
  
 ABC
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-09-01 15:45:12 | By :
                            watcharop |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ยังรอคำตอบจากคนใจดีอยู่นะ 
  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-09-15 12:59:32 | By :
                            watcharop |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | เป็น 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 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ทั้งเครื่องผม กับเครื่อง Server ทุกตัว (IIS, MS SQL Server) ต่างกำหนด Regional Setting เป็น English (United State) หมด จึงไม่น่ามีปัญหาเรื่องปี
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-09-15 14:40:12 | By :
                            watcharop |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ผมลองเขียน 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 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | รูปแบบการ 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 |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ดูเหมือนระหว่างการใช้ JavaScript และ vbscript กับ object ในกลุ่ม ADODB จะทำได้เหมือนกัน
 เพียงแต่จะมี JavaScript จะมีปัญหาเมื่อต้องการอัพเดตข้อมูลประเภทวันที่นะ
 
 เซ็ง
 
  
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-09-17 09:24:28 | By :
                            watcharop |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | สุดท้ายขอบคุณ ท่านเทพ tungman ครับ 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2010-09-17 09:26:10 | By :
                            watcharop |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  |  |