510
צפיות
צפיות
14
תשובות
תשובות
הוספת שדות רשות לדאטאבייס
אני מקבל מהלקוח מס' נתונים כאשר הוא לא חייב להקליד את כולם
(שדות רשות)
אבל כשהשדות נשארים ריקים
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
רעיונות…?
תודה.
ארתור
14 תשובות
=>
שים את שאילתת ההכנסה של הנתונים ואת מבנה ה-DB (כולל סוג השדות)
הנה : ….
SQL = "insert into Customers(id,nick,password,first_name,last_name,City,street,home,zip,phone,cell,email) Values ("
SQL = SQL & "'" & ValidSQL(request.Form("id")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("nick")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("password")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("first_name")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("last_name")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("city")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("street")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("home")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("zip")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("phone")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("cell")) & "',"
SQL = SQL & "'" & ValidSQL(request.Form("email")) & "')"
MyConn.Execute (SQL)
במקרה זה לדוגמא :
אם אני לא רוצה לחייב את הלקוח להזין מיקוד(ZIP)
וערך התא "".
בבסיס הנתונים ZIP מוגדר כמספר.
תודה
עשה כך:
…….
הכנס את הערך המתקבל לתוך משתנה:
x = request.Form("home")
if x="" then
x=null
end if
ואם הערכים הם NULL הכנס אותם בלי גרשיים.
לא הולך ,אבל הסתדרתי
Error Type:
Microsoft VBScript runtime (0x800A005E)
Invalid use of Null: 'Replace'
/db/functions.asp, line 26
הוא לא רצה לקבח את NULL
מה שמוזר פה ששורה 26 ריקה לגמרי…
עשיתי את זה בדרך עקומה, הצבתי 0 אם השדה ריק
RT… משהו לידע אישי
שסופרים את השורות סופרים לפי השורות שי בהן טקסט ולא לפי השורות שהריקות
כמובן…..
אבל מה תגיד אם אני אגיד לך שהצבתי את ה NULL בכלל בשורה 92
:-s
זה לא היה אמור לעבוד לך ככה
זו רק דוגמא
ואני חשבתי שצריך רק להעתיק ולהדביק
נו באמת ….
שיניתי את הקוד שלי אבל הוא לא מוכל לקבל את הNULL ומוציא לי את הארור שציינתי למעלה…..
אשמח אם מישהו יפתור את הבעיה ,לידע כללי ,אפילו שזה פועל עכשיו גם בלי הNULL
תבדוק בתצוגת עיצוב של הטבלה שלך
אם הוא מוגדר לקבל ערכים שהם Null
איך אני מגדיר אותו לקבל NULL ?
הוא מוגדר לי כמספר…
תראה קצת קוד,
לפי השגיאה שלך הבעייה נראית בקוד.
רגע, רגע…
חלק מהשדות ב DB מוגדרים כשדות מספריים, אבל אתה מנסה להכניס לכולם ערכים מחרוזתיים – תעיף תגרש מהערכים המספריים בשאילתה שלך – במקום:
SQL = SQL & "'" & ValidSQL(request.Form("zip")) & "',"
תכתוב
SQL = SQL & ValidSQL(request.Form("zip")) & ","
ואת זה אתה צריך לכתוב כמובן ככה על כל שדה מספרי…
לא חשבתי שזאת הבעייה
בכל מקרה – הילדה כתבה בתפוז על איך משרשרים שאילתא וזוהר על איך לדבר SQL, כדאי לקרוא.