איך אני קורא מתוך שאילתא בקובץ mdb דרך asp ? - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

איך אני קורא מתוך שאילתא בקובץ mdb דרך asp ?


blackcoma

Recommended Posts

כן בדיוק אותו דבר

בקובץ ה- mdb אתה מגדיר את השאילתה שלך בשם Query1 למשל:

select ID, Name, Salary From Table1

ובדף ה- asp שלך אמור להיות פתיחה של המסד בעזרת אובייקט Adodb.Connections

ולאחר מכן בקשת שאילתה מהשאילתה המוכנה בעזרת אובייקט Adodb.Recordset

שמשפט שלו יראה משהו כמו

rs.Open ("Query1",cn1,2,3)

קישור לתוכן
שתף באתרים אחרים

ניסיתי את זה, כי זה היה נראה די ברור,

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

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

קישור לתוכן
שתף באתרים אחרים

ניסיתי את זה, כי זה היה נראה די ברור,

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

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

כן , לא ציינת שהשאילתה מקבלת פרמטרים, אז הטיפול קצת אחר, בגדול זה נראה משהו כזה

<%
set cn1 = Server.CreateObject("Adodb.Connection")
set cmd1 = Server.CreateObject("Adodb.Command")

    cn1.Open "xxx"
    cmd1.ActiveConnection = cn1
    cmd1.CommandText = "Query1"
    cmd1.CommandType = 4
    cmd1.Parameters.Append cmd1.CreateParameter("שם השאילתה", adInteger, adParamInput, , 2)
    Set rs1 = cmd1.Execute
    Do While rs1.EOF = False
        Response.Write (rs1.Fields("שם שדה להדפסה").Value)
        rs1.MoveNext
    Loop
    rs1.Close
    cn1.Close

%>

שים לב לקבועי מערכת adParamInput ו - adInteger שבאים עם הספריה של ADODB אבל לא מוכרים ב- ASP ולכן אתה צריך להגדיר קובץ include או שתפתח ב- Excel את ה- VBA ותראה שם מהם הקודים לכל אחד מהקבועים האלו ותחליף בתכנית שלך את שמות הקבועים בקודים המתאימים

קישור לתוכן
שתף באתרים אחרים

לא אין לי , זה לא כ"כ מסובך האובייקט command הוא פשוט אובייקט שמאפשר לשלוח שאילתה לשרת ה- database עם פרמטרים

תגיד לי איזה פרמטרים יש אצלך ומה סוג הנתונים שלהם (string או int ) ואני אגיד לך איך הפקודה תראה ספציפית למקרה שלך

קישור לתוכן
שתף באתרים אחרים

זה כל הסיפור ? אז תבכלל לא צריך להסתבך בקוד , תחזור לקוד הקודם הפשוט שאתה מכיר

ואת הלוגיקה שישלוף ימי הולדת שחלים השבוע תעביר לאחריות ה- Database

בהנחה שאתה עובד עם Access הקוד הבא אמור לעבוד ולשלוף תמיד תאריכים שהשבוע שלהם חל בשבוע הנוכחי

ב- DB אחרים יש פתרונות דומים רק שהקוד נראה מעט שונה

SELECT 
Table1.ID,
Table1.Name,
DatePart("ww",[Date]) AS Week_Of_BDay,
DatePart("ww",Now()) AS Week_Of_Today
FROM
Table1
WHERE
DatePart("ww",[Date]) = DatePart("ww",Now());

קישור לתוכן
שתף באתרים אחרים

הנה הקוד עם מאגר הנתונים,יש שם 2 טבלאות messages שתציג הודעות עם הקוד שמצ"ב ו - birthday שבה אמורים להיות כתובים השמות...

אני באמת מצטער שאני משגע אותך, אבל אני לא יודע איפה לכתוב את כל מה שציינת בקוד asp...

שוב תודה...

ומצטער על כל הטרטור...

[attachment deleted by admin]

קישור לתוכן
שתף באתרים אחרים

ללא צורך בהעברת פרמטרים, ה- Database מחשב לבד את התאריכים שנופלים השבוע

בדף ה- ASP


<%@Language=VBScript%>
<%
option explicit

dim cn1
dim rs1
dim html1

set cn1 = Server.CreateObject("ADODB.Connection")
cn1.Open("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\db1.mdb;Mode=Share Deny None")
set rs1 = Server.CreateObject("ADODB.Recordset")
rs1.Open "Query3",cn1,0,1
html1 = "<table border=1>"
do while rs1.EOF = false
html1 = html1 & "<tr>"
html1 = html1 & "<td>" & rs1.Fields("message_txt").Value & "</td>"
html1 = html1 & "<td>" & rs1.Fields("Date").Value & "</td>"
html1 = html1 & "<td>" & rs1.Fields("מספר").Value & "</td>"
html1 = html1 & "</tr>"
rs1.MoveNext
loop
html1 = html1 & "</table>"
Response.Write html1
rs1.Close
set rs1 = Nothing
cn1.Close()
set cn1 = Nothing
%>

ב- Database את בונה 2 שאילתות הראשונה המטרה שלה לחשב את תאריכי הלידה כאילו היו השנה ובאיזה שבוע הם נופלים השנה , תקרא לה למשל Query2:

SELECT birthday.message_txt, birthday.Date, birthday.מספר, DateSerial(Year(Now()),Month([Date]),Day([Date])) AS ThisYearDate, DatePart("ww",ThisYearDate) AS ThisYearWeek
FROM birthday;

השאילתה השניה תקרא לה Query3 המטרה שלה לבחור מתוך Query2 רק את התאריכים שהשבוע שלהם נופל על השבוע הנוכחי

SELECT Query2.message_txt, Query2.Date, Query2.מספר, Query2.ThisYearDate, Query2.ThisYearWeek
FROM Query2
WHERE (((Query2.ThisYearWeek)=DatePart("ww",Now())));

הכל על סמך הקובץ ששלחת

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...