PDA

View Full Version : لود کردن اطلاعات از بانک ...



mostafa612003
شنبه 28 مرداد 1385, 10:08 صبح
سلام
من یک لیستی از اطلاعات دارم که ممکنه تعداد این اطلاعات به عدد 100000 برسد
من می خواهم در برنامه بگویم که 5 تا 5تا اطلاعات را از بانک لود کند ولی همان 100000 را در صفحه نمایش بدهد و کاربر متوجه چیزی نشود
امکانش هست؟
متشکرم

لوک خوش شانس
پنج شنبه 02 شهریور 1385, 01:05 صبح
سلام
من یک لیستی از اطلاعات دارم که ممکنه تعداد این اطلاعات به عدد 100000 برسد
من می خواهم در برنامه بگویم که 5 تا 5تا اطلاعات را از بانک لود کند ولی همان 100000 را در صفحه نمایش بدهد و کاربر متوجه چیزی نشود
امکانش هست؟
متشکرم
خودت متوجه شدی که چی سوال کردی ؟:گیج:
اگه قرار 5 تا رکورد رو از بانک بخونی از کجا می خوای متوجه بشی که تو بانک چند تا رکورد ذخیره شده ؟:متفکر:

ببین میتونی با چند خط کد صفحه رو طوری طراحی کنی که کاربر در هر صفحه 5 تا رکورد از بانکتو ببینه و با رفتن به صفحه بعدی 5 تا رکورد دوم رو ببینه . مثل همین سایت .

amirlol
جمعه 03 شهریور 1385, 16:53 عصر
من که نفهمیدم چی گفتش این

mostafa612003
شنبه 04 شهریور 1385, 07:58 صبح
نمی خواهم صفحه بندی داشته باشم.
در واقع شما موقع صفحه بندی هم کل اطلاعات را از بانک لود می کنید با * select
بعد می گویید مثلا در هر صفحه 5 تا نشان بده

aligh662000
شنبه 04 شهریور 1385, 08:50 صبح
پس چی می خوای مرد مؤمن؟
sql ="select top 5 fieldname from tblname"
اینجوری بنویس شاید اونی باشه که می خوای

blackeve
سه شنبه 07 شهریور 1385, 15:34 عصر
منم دقیقاً متوجه منظور شما نشدم ولی اگه تعداد رکورد خاصی رو از بانک باید پیاده کنید میتونید از روشهای مختلفی استفاده کنید :

برای پیاده سازی آخرین رکورد میتونید از دستور TOP n استفاده کنید که n مقدار عددی است.
ولی روشهای بهتر و کاملتری هم هست که شما لیست تمامی زکوردهارو صفحه بندی می کنید (recordset.PageSize ) بعد تعداد صفحات رو بدست میارید بوسیله Recordset.PageCount و بعد میتونید صفحه خاص با تعداد رکورد مورد نظرتون رو از بانک صدا بزنید بوسیکه Recordset.AbsolutePage و ایجاد حلقه تا ابتدای اولین رکورد صفحه بعد.

فکر کنم یخورده مبهم گفتم...
اگه نیاز بود بگید یه نمونه براتون بنویسم و بزارم ( البته دراولین موقعیت)

fatemeh r
دوشنبه 03 مهر 1385, 06:26 صبح
blackeve لطفا نمونه ای که حرفش را زده ای برای من بفرست
ممنون می شوم f_rasouli2003@yahoo.com

لوک خوش شانس
دوشنبه 03 مهر 1385, 23:13 عصر
آقا یه سوال کردی روفتی دیگه پیدات نشد .
چی کار کردی درست شد یا نه بالا خره .

blackeve جان چیزی که گفتی رو میشه با نرم افزار ASPMAKER به راحتی و سر سه سوت درست کرد خودش همه کار ها رو میکنه .

مثلاً تنظیم میکنی که در هر صفحه 25 تا رکورد رو نمایش بده . بعد از اتمام کار و باز کردن صفحه بهت میگه که چند تا صفحه داری و برای رفتن به هر صفحه میتونی با وارد کردن شماره صفحه مستقیماً همون صفحه با رکورد های مربوطه رو لود کنی . یه چیزی بیه گوگل

blackeve
سه شنبه 04 مهر 1385, 12:13 عصر
اول شرمنده که دیر جواب میدم، یه مدتیه گرفتارم و این حرفا
نمونه کد رو همینجا براتون میزارم اگه موردی بود بگید تا توضیح بدم مجدد،

نمونه کد :



'نام صفحه جاری
ScriptName = Request.ServerVariables("SCRIPT_NAME")
'ایجاد ارتباط با جدول بانک اطلاعاتی
Set rs = Server.CreateObject("ADODB.Recordset")
'نمایش تعداد رکورد ها در هر صفحه
if Request.QueryString("resNum") = "" then
NumPerPage = 20
'در صورتی که این عدد در نوار آدرس در متغیر خود آمده باشد جایگزین می شود
Else
NumPerPage = Cint(Request.QueryString("resNum"))
End If
'مشخص کننده صفحه ای ما اکنون در آن هستیم
If Request.QueryString("page") = "" then
' درصورتی که مقدار تهی باشد صفحه اول مشخص می گردد
CurrentPage = 1
Else
'در غیر این صورت صفحه جاری از نوار آدرس دریافت می شود
CurrentPage = CInt(Request.QueryString("page"))
End If
'دریافت لیست رکوردهای مورد نیاز از بانک اطلاعاتی
strSQL = "SELECT * FROM [TblName]"
'بازکردن بانک اطلاعاتی با ارتباط بانک اطلاعاتی adoConn
rs.Open strSQL, adoCon, 1, 1 'ارتباط فقط دریافت را پشتیبانی کی کند و نه تغییر یا حذف
'در صورتی که که رکوردهای برگشتی غیر تهی یا صفر باشد
If Not rs.EOF Then
' به اولین رکورد برگشتی حرکت می کنیم
rs.MoveFirst
' اندازه صفحه رکوردها را برابر عدد مورد نظر قرار می دهیم
rs.PageSize = NumPerPage
'تعداد صفحات ممکن را در متغیر ذخیره می کنیم
TotalPages = rs.PageCount
'نمایش رکوردهای صفحه مورد نظر را با قرار دادن متغیر مشخص می کنیم
rs.AbsolutePage = CurrentPage
End If
Dim Count
' مرورگر صفحات را در این بخش بصورت زیر ایجاد می کنیم
For pageNum = 1 to TotalPages
If pageNum = CurrentPage Then
%>
<span id="PagingNum"><b><% = pageNum %></b></span>
<% Else %>
<span id="PagingNum"><a href="?page=<% = pageNum %>"><% = pageNum %></a></span>
<%
End If
Next
%>

'لینک صفحه قبل را بصورت زیر ایجاد می کنیم
If Not CurrentPage = 1 Then
Response.Write "<a style='text-decoration: none' href='" & ScriptName & "?page=" & CurrentPage - 1 & "'>صفحه قبل</a> | "
Else
Response.Write "اولین صفحه | "
End If

'لینک صفحه بعد را بصورت زیر ایجاد می کنیم
If Not CurrentPage = TotalPages Then
Response.Write "<a style='text-decoration: none; font-size: 11px' href='" & ScriptName & "?page=" & CurrentPage + 1 & "'>صفحه بعد</a>"
Else
Response.Write "آخرین صفحه"
End If

Count = 1
'ایجاد حلقه نمایش رکورد
While Not rs.EOF and Count =< rs.PageSize
%>
[read record set and show information here]
<%
rs.MoveNext
Count = Count + 1
Wend
rs.Close
%>


موفق باشید -
--------------------

آقا یه سوال کردی روفتی دیگه پیدات نشد .
چی کار کردی درست شد یا نه بالا خره .

blackeve جان چیزی که گفتی رو میشه با نرم افزار ASPMAKER به راحتی و سر سه سوت درست کرد خودش همه کار ها رو میکنه .

مثلاً تنظیم میکنی که در هر صفحه 25 تا رکورد رو نمایش بده . بعد از اتمام کار و باز کردن صفحه بهت میگه که چند تا صفحه داری و برای رفتن به هر صفحه میتونی با وارد کردن شماره صفحه مستقیماً همون صفحه با رکورد های مربوطه رو لود کنی . یه چیزی بیه گوگل

من با این نرم افزار کار نکردم.
ولی فکر کنم حتی اگه این برنامه هم این کار رو انجام بده باز باید اصول رو یاد بگیریم تا بتونیم برنامه رو تغییر بدیم.

لوک خوش شانس
سه شنبه 04 مهر 1385, 17:25 عصر
blackeve جان دمت گرم . ای ول عجب فول توضیحاته .
خیلی حال کردم .

در مورد برنامه ASPMAKER شما درست میگی در هر صورت باید اصول رو که یاد داشته باشی به کار هم کاملاً وارد باشی تا بتونی با این جور نرم افزارها کار کنی . اینا فقط زحمت آدم رو کم تر میکنن و یکمی سرعت کار رو برای بعضی از جاها زیاد می کنن .