צפיות
תשובות
הצילו! בעיית אקסס שמוציאה אותי מדעת
אני מנסה לשלוף RS ב-ASP מבסיס נתונים של ACCESS. את הרשומה הראשונה הוא כ-ן שולף אבל על רשומות אחרות (קיימות!!!) הוא נותן לי את הודעת השגיאה הבאה –
ErrorCode: 3265
ErrorMessage: Item cannot be found in the collection corresponding to the requested name or ordinal.
לא יודעת אם זה קשור, אבל אני נותנת יותר מידע על איך אני עושה את זה –
אני עובדת עם קשר DNSLESS לבסיס הנתונים. את השליפה אני עושה דרך Command בתוך פונקציה כללית (בJScript ASP) –
function getRS(strSQLCommand,arrParam)
{
var Conn = Server.CreateObject("ADODB.Connection");
Conn.Open(Application("ConnectionString"));
var Comm = new ActiveXObject("ADODB.Command");
Comm.ActiveConnection = Conn;
Comm.CommandText=strSQLCommand;
for(var i=0; i<arrParam; i++)
{
Comm.Parameters(i)=arrParam[i];
}
var rs=Comm.Execute();
Comm=false;
Conn = false;
return rs;
}
השליפה שלי היא זו –
var strSQLtext="SELECT * FROM GlobalVars WHERE GlobalVarId = ? "
ואני שולחת פרמטר של GlobalVarId שנמצא בבסיס הנתונים.
מישהו יודע למה זה קורה לי? ומה עושים?
תודה,
המיואשת
7 תשובות
כמה דברים:
1. ישרי קוד לשמאל.
2. הצילו תגידי כשאת קוראת למכבי אש.
3. תראי לנו בבקשה אילו פרמטרים את שולחת לפונקציה.
4. בנית את השאילתה ב designer או דרך קוד?
וגם
איזו שאילתא זאת (עדכון, מחיקה, שליפה, הוספה..)?
הקוד מיושר לצד שמאל –
|function getRS(strSQLCommand,arrParam)
{
var Conn = Server.CreateObject("ADODB.Connection");
Conn.Open(Application("ConnectionString"));
var Comm = new ActiveXObject("ADODB.Command");
Comm.ActiveConnection = Conn;
Comm.CommandText=strSQLCommand;
for(var i=0; i<arrParam; i++)
{
Comm.Parameters(i)=arrParam[i];
}
var rs=Comm.Execute();
Comm=false;
Conn = false;
return rs;
}
var strSQLtext="SELECT * FROM GlobalVars WHERE GlobalVarId = ? "
var paramArray=new Array();
paramArray[0]=1;
var objRS=getRS(strSQLtext,paramArray);
עוד נסיון לישר לשמאל
var strSQLtext="SELECT * FROM GlobalVars WHERE GlobalVarId = ? "
var paramArray=new Array();
paramArray[0]=1;
var objRS=getRS(strSQLtext,paramArray);
function getRS(strSQLCommand,arrParam)
{
var Conn = Server.CreateObject("ADODB.Connection");
Conn.Open(Application("ConnectionString"));
var Comm = new ActiveXObject("ADODB.Command");
Comm.ActiveConnection = Conn;
Comm.CommandText=strSQLCommand;
for(var i=0; i<arrParam; i++)
{
Comm.Parameters(i)=arrParam[i];
}
var rs=Comm.Execute();
Comm=false;
Conn = false;
return rs;
}
ועכשיו גם תשובות לשאלות
איזו שאילתא – שליפה פשוטה ( * select).
בניתי את השאילתא דרך הקוד.
אני שולחת פרמטר אחד – של id.
החלק הכי משונה בסיפור – זה שבאחת הרשומות (זו שה-id שלה 1) זה כן עובד ובשאר זה לא, למרות שהשאילתא זהה.
מצאתי את הטעות. תתעלמו בבקשה
…
פשוט כתבי לא יפה את הריצה על הלולאה של הפרמטרים. אני נבוכה
שטויות