שלח תשובה

זירת השאלות

425
צפיות
7
תשובות

הצילו! בעיית אקסס שמוציאה אותי מדעת

,‏ 7 באוקטובר, 2004

אני מנסה לשלוף 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. אוריקס הגיב:

    כמה דברים:
    1. ישרי קוד לשמאל.
    2. הצילו תגידי כשאת קוראת למכבי אש.
    3. תראי לנו בבקשה אילו פרמטרים את שולחת לפונקציה.
    4. בנית את השאילתה ב designer או דרך קוד?

  2. אוריקס הגיב:

    וגם
    איזו שאילתא זאת (עדכון, מחיקה, שליפה, הוספה..)?

  3. mirileh הגיב:

    הקוד מיושר לצד שמאל –

    |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);

  4. mirileh הגיב:

    עוד נסיון לישר לשמאל


    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;
    }

  5. mirileh הגיב:

    ועכשיו גם תשובות לשאלות
    איזו שאילתא – שליפה פשוטה ( * select).
    בניתי את השאילתא דרך הקוד.
    אני שולחת פרמטר אחד – של id.

    החלק הכי משונה בסיפור – זה שבאחת הרשומות (זו שה-id שלה 1) זה כן עובד ובשאר זה לא, למרות שהשאילתא זהה.

  6. mirileh הגיב:

    מצאתי את הטעות. תתעלמו בבקשה
    פשוט כתבי לא יפה את הריצה על הלולאה של הפרמטרים. אני נבוכה

שלח תשובה