HOME > ASP > ASP Forum > ช่วยดู code หน่อยครับ โปรแกรมนี้ถ้าใช้กับ Access ใช้ได้ปกติ แต่ถ้าใช้กับ My sql จะใช้ไม่ได้เฉพาะไฟล์ finish.asp เท่านั้นครับ...มันจะขึ้นว่า Line 1: Incorrect syntax near ','.
ช่วยดู code หน่อยครับ โปรแกรมนี้ถ้าใช้กับ Access ใช้ได้ปกติ แต่ถ้าใช้กับ My sql จะใช้ไม่ได้เฉพาะไฟล์ finish.asp เท่านั้นครับ...มันจะขึ้นว่า Line 1: Incorrect syntax near ','.
<%
Dim conn
Function ConnectDB()
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=toon;User Id=arunee;Password=password"
If Err.Number = 0 Then
ConnectDB = True
Else
ConnectDB = False
End If
End Function
%> <<======= อันนี้ติดต่อกับ my sql
<%
Dim conn
Function ConnectDB()
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("db/esme2000.mdb")
If Err.Number = 0 Then
ConnectDB = True
Else
ConnectDB = False
End If
End Function
%> <<======= อันนี้ติดต่อกับ Accessใช้ได้ ปกติ
<%@ codepage="874" %>
<% Option Explicit %>
<% If Session("cemail") = "" Then Response.Redirect "login.asp?page=shipping.asp" %>
<%
' กรณีที่ยังไม่มีสินค้าใดๆ ลงในรถเข็น แล้วคลิกเมนู Checkout
If Session("cartempty") = True Then Response.Redirect "ssviewcart.asp"
%>
<!--#include file="include/dbconnect.asp" -->
<!--#include file="include/sendmail.asp" -->
<html>
<head><title></title></head>
<body bgcolor="#FFFFFF" text="#000000">
<!--#include file="include/header.htm" -->
<table width="820" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="24%" valign="top">
<!--#include file="include/menu.asp" -->
</td>
<td width="76%" valign="top">
<%
CONST CARTPID=0
CONST CARTPNAME=1
CONST CARTPPRICE=2
CONST CARTPQUANTITY=3
'--------------------------------------------------------------------
' 1.ประกาศตัวแปรเพื่อรับค่าจากตัวแปร Session
Dim localCart, aShip, aCust, aPay, orderTotal, grandTotal
Dim today, sql, rs, orderid, i
Dim sSubject, sBody
'--------------------------------------------------------------------
' 2.รับค่าจากตัวแปร Session เก็บใส่ตัวแปรแต่ละตัว
aCust = Session("customer") ' อาเรย์ 2 มิติ
aShip = Session("shipaddress") ' อาเรย์ 1 มิติ
aPay = Session("aPay") ' อาเรย์ 2 มิติ
orderTotal = Session("orderTotal") ' อาเรย์ 1 มิติ
grandTotal = Session("grandtotal") ' อาเรย์ 1 มิติ
localCart = Session("cart") ' อาเรย์ 2 มิติ
'--------------------------------------------------------------------
' 3.ติดต่อฐานข้อมูลเพื่อทำการบันทึกข้อมูลทั้งหมดในตาราง Orders และ OrderDetails
On Error Resume Next
If ConnectDB() = True Then
'--------------------------------------------------------------------
' Set Locale in US (m/d/yyyy h:mm:ss AM|PM)
' In order to insert and query Date/Time field in MS Access 2000
Session.LCID = 1033
today = Now()
'--------------------------------------------------------------------
' เพิ่มข้อมูลลงในตาราง Orders
sql = "insert into orders (odate,subtotal,shipprice,grandtotal,cid,cname,csurname,ccompany,caddress,csubdistrict,cdistrict,cprovince,ccountry,czip,spid,pmid,osid) " & _
"values (#"& today &"#,"& orderTotal &","& aShip(11) &", "& grandTotal &","& aShip(0) &",'"& aShip(1) &"','"& aShip(2) &"','"& aShip(3) &"','"& aShip(4) &"','"& aShip(5) &"','"& aShip(6) &"','"& aShip(7) &"','"& aShip(8) &"','"& aShip(9) &"',"& aShip(10) &","& aPay(0,0) &",1)"
Conn.BeginTrans
Conn.Execute sql
'--------------------------------------------------------------------
' ค้นหาค่าของรหัสสั่งซื้อ OID ในตาราง Orders
sql = "select oid from orders " & _
"where odate=#"& today &"# and cid="& aShip(0) &" " & _
"order by oid DESC"
Set rs = Conn.Execute(sql)
orderid = rs(0)
rs.Close
Set rs = Nothing
'--------------------------------------------------------------------
' เพิ่มข้อมูลในตาราง OrderDetails
For i = 0 To UBound(localCart,2)
If localCart(CARTPID,i) <> "" Then
sql = "insert into orderdetails (oid,pid,pname,pprice,qty,subtotal) " & _
"values ("& orderid &","& localCart(CARTPID,i) &",'"& localCart(CARTPNAME,i) &"',"& localCart(CARTPPRICE,i) &","& localCart(CARTPQUANTITY,i) &","& (localCart(CARTPPRICE,i) * localCart(CARTPQUANTITY,i)) &")"
Conn.Execute sql
End If
Next
'--------------------------------------------------------------------
If Err.Number = 0 Then
Conn.CommitTrans
Response.Write "<br><br><br><center>"
Response.Write "<b>เราได้รับคำสั่งซื้อจากท่านเรียบร้อยแล้ว ขอขอบคุณที่ใช้บริการ<br>"
Response.Write "หวังเป็นอย่างยิ่งว่าคงมีโอกาสได้ให้บริการท่านอีกในคราวต่อไป</b>"
Response.Write "<br><a href=default.asp>หน้าร้าน (Storefront)</a></center>"
' ส่งข้อมูลการสั่งซื้อทางอีเมล์ไปยังลูกค้าและร้านค้าอย่างละฉบับ
sSubject = "Your order receipt #" & orderid & " from yourdomain.com"
sBody = "Your order is complete, please check your order status at our menu " & _
"<a href=""http://" & Request.ServerVariables("SERVER_NAME") & "/myaccount.asp"">" & _
"My Account</a> all the time.<br>Thank you for using our services."
' ใช้ฟังก์ชันส่งเมล์ SendMail("From", "To", "CC", "Subject", "Body")
Call SendMail("me@localhost",Session("cemail"),"",sSubject,sBody)
' ทำลายตัวแปร Session ทุกตัว
Session.Abandon
Else
Conn.RollBackTrans
Response.Write "รหัสสั่งซื้อคือ " & orderid & "<br>"
Response.Write "<br><br><br><center>"
Response.Write "ไม่สามารถรับคำสั่งซื้อจากท่านได้ เนื่องจาก...<br>"
Response.Write "<b>" & Err.Description & "</b><br>"
Response.Write "กรุณาติดต่อทางร้านค้าเราโดยตรงครับ</center>"
End If
End If
%>
</td>
</tr>
</table>
<!--#include file="include/footer.htm" -->
</body>
</html>
โปรแกรมนี้ถ้าใช้กับ Access ใช้ได้ปกติ แต่ถ้าใช้กับ My sql จะใช้ไม่ได้เฉพาะไฟล์ finish.asp เท่านั้นครับ...มันจะขึ้นว่า Line 1: Incorrect syntax near ','.
Tag : - - - -
Date :
7 เม.ย. 2549 16:08:43
By :
iamjo
View :
2712
Reply :
4
No. 1
Guest
มันจะขึ้นว่า Line 1: Incorrect syntax near ','.
Date :
7 เม.ย. 2549 16:09:45
By :
iamjo
No. 2
Guest
MySQL หรือว่า MS SQL แยกให้ออกนะครับ งง เพราะว่า MySQL นี่ จะใช้ ODBC ไม่ใช้เหรอ
Microsoft Access
<%
strConn="provider=Microsoft.Jet.OLEDB.4.0; data source=D:\Inetpub\yourdomain.com\yourdb.mdb"
set conn=server.createobject("adodb.connection")
conn.open strConn
%>
Microsoft SQL Server
<%
strConn="provider=SQLOLEDB; data source=server;INITIAL CATALOG=database;User ID=sa; Password="
set conn=server.createobject("adodb.connection")
conn.open strConn
%>
แบบนี้ MS SQL 2000 ชัวร์ครับ My Sql 2000 มันมีที่ไหน -*-
ลองเชคดู Sql ที่ใช้สืบค้นข้อมูลหรือเพิ่มข้อมูลดู
ถ้าเป็น Ms Sql ชนิดของข้อมูลในฟิลด์บางอย่างจะใช้เหมือนกับ MS Access ไม่ได้
แต่ MS Access ใช้เหมือน MS Sql ได้
เช่น True/False ใช้ใน MS Sql ไม่ได้ แต่ใช้ใน MS Access ได้
แต่ 1/0 ใช้แทน True/False ใน MS Sql ได้ แล้วก็ใช้ใน MS Access ได้ด้วย