בעיה בהכנסת נתונים בSQL

Imanuel17

New member
בעיה בהכנסת נתונים בSQL

שלום לכולם עשיתי טופס שממנו צריכים להישלח הנתונים למסד נתונים Access 2007. עשיתי את הבדיקות של JS וכו' אבל כשאני שולח מהטופס זה עושה לי שגיע.
<%Response.buffer = true set oc = server.createobject("adodb.connection") oc.open "driver=microsoft access driver(*.mdb);" &_ "dbq=c:\inetpub\wwwrot\imanuel\members.mdb;" sqlstring="insert into members (uname,password,fname,lname,email,icq) &_ values ('"&request.form(signup.uname)&"','"&request.form(signup.password)&"', '"&request.form(signup.fname)&"', '"&request.form(signup.lname)&"','"&request.form(signup.email)&"','"&request.form(signup.icq)&"') oc.execute sqlstring oc.close set oc = nothing %>​
לא ירדתי שורות באמת רק פה כי אין מקום. זה השגיע שזה עושה לי:
סוג שגיאה: ‏‏שגיאת קומפילציה של Microsoft VBScript (0x800A0409) ‏‏קבוע מחרוזת לא גמור /Imanuel/signup.asp, line 8, column 72 sqlstring="insert into members (uname,password,fname,lname,email,icq) &_ -----------------------------------------------------------------------^​
ניסיתי לשנות אבל אני לא מוצא פה את השגיע אני מקווה שתעזרו לי
 

א ו ר ח ת

New member
צעד צעד

בשביל שנוכל בברור לראות את השגיאה מה שתעשה זה , אל תריץ את ה oc.execute sqlstring שים את זה בערה , ותבקש מהדף להדפיס לך את המתשנה של השאילתה, ואז נוכל לראות אם השאילתה כתובה נכון. להדפסה רשום בסוף הדף ככה:
<%=sqlstring%>​
בהצלחה
 

זהר פלד

New member
הלכת צעד אחד יותר מדי ../images/Emo13.gif

השגיאה היא של vbs, כלומר שה sql בכלל לא נשלח עדיין למסד הנתונים.... ואכן, יש טעות בקוד vbs:
sqlstring="insert into members (uname,password,fname,lname,email,icq) &_​
צריך להיות
sqlstring="insert into members (uname,password,fname,lname,email,icq)" &_​
 

א ו ר ח ת

New member
../images/Emo13.gif א' ו ב'

א. הוא אמר שהירידת שורה היא בשבילנו ולא בקוד. ב. הדפסה הייתה מראה לו את זה נכון? :)
 

זהר פלד

New member
../images/Emo13.gif א' ו ב'

לגבי א', ספציפית בשורה הזו הקוד נראה כמתוכנן לירידת שורה, וגם הודעת השגיאה מתאימה לזה. לגבי ב', לא, כי השגיאה מתרחשת בזמן יצירת המחרוזת, והקוד לא יגיע לשלב של Response.write לפני שתתוקן השגיאה...
 

Imanuel17

New member
תודה אבל...

יש לי עוד בעיה באותו קובץ. כשאני מריץ את הקובץ אחרי התיקון הוא מציג לי את השגיע הבאה:
סוג שגיאה: אובייקט Request, ASP 0102 (0x80004005) הפונקציה מצפה למחרוזת כקלט. /Imanuel/signup.asp, line 7​
זאת שורה 7:
qlstring="insert into members (uname,password,fname,lname,email,icq)" &_ values (request.form(uname),request.form(password),request.form(fname), request.form(lname),request.form(email),request.form(icq))​
 

זהר פלד

New member
האמת, זה מתאים יותר לפורום asp...

בכל מקום שכתוב Request.Form וסוגריים, צריך להיות מחרוזת בפנים: לדוגמא - במקום
request.form(uname)​
צריך להיות
request.form("uname")​
 

24sharon

New member
בעמנואל אין אנשים

שקוראים להם ג'ון או אולי ג'ורג'? צריך לבצע בדיקות לפני שמכניסים נתונים למסד הנתונים (להכפיל גרש, לבדוק תווים כדוגמת -- וכד') טוב זה סתם הערות כמובן שאי אפשר להתווכח עם זהר פלד הוא פשוט צדק חסר שם מרכאות לפני ה-& (איך קוראים לזה בעברית) ונראה לי שגם בסוף הסוגריים צריכים להיות בתוך המחרוזת. אבל כמו שאמרו הבדיקה היא response.write לפני שמריצים את המחרוזת וכך רואים מה יש במחרוזת.
 
למעלה