שלח תשובה

זירת השאלות

369
צפיות
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 הגיב:

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

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!