שלח תשובה

זירת השאלות

2 תשובות

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

    אפשר לעשות הכל ברמת ה SQL.

    שליפה רנדומאלית ברמת ה SQL באקסס הולכת בצורה הבאה [בשביל MySql ו SQLServer יש פתרונות אלגנטיים בהרבה]:


    var w=Math.random()*4;
    var x=Math.random()*10;
    var y=Math.random()*3;
    var z=Math.random()*6;
    sql="";
    sql+="SELECT id,* ";
    sql+="FROM tbl ";
    sql+="ORDER BY cos("+z+"*(sin(cos(-Sin(tan(sqr(id)*"+y+"))*tan(id)*sin(id*tan(id)))/2*"+x+"*tan(id))))*sin(id*tan(id*cos(id)*cos(id)*Sin(id*tan(id*cos(id)))*tan(90-id*cos(id)*sin(id)))*sin("+w+")*cos(id)) DESC";
    rs.Open (sql,Conn);

    מה שעשינו פה בעצם זה ליצור רנדום בעזרת קצת מתמטיקה [ותודה לטריגו מקרב לב], כיוון שאין פונקציה מוכנה שאקסס מספק לנו [למען האמת יש, אבל היא מגרילה פעם אחת ומחזירה תמיד את אותה התוצאה (-:]

    מאמר מעניין בנושא – Randomizing a Recordset

  2. ניר טייב הגיב:

    השאילתא הבאה נבדקה על המסד לדוגמא Northwind ונמצאה עובדת
    -> סידור רנדומלי של רשומות
    -> לא חוזר על אותם רצפים

    VBS:


    Randomize()
    dim sql
    sql = "SELECT Employees.EmployeeID FROM Employees ORDER BY Rnd(-1 *"&rnd()&"*Employees.EmployeeID)"
    rs.Open sql, objConn

    JS:


    var sql;
    sql = "SELECT * FROM tbl3 ORDER BY Rnd(-1*"+Math.random()+"*CInt(tbl3.id));";
    rs.open (sql,objConn);

שלח תשובה