PDA

نسخه کامل مشاهده نسخه کامل : بانک اطلاعاتی



mohsen57
21-07-2007, 01:28
سلام
اگه من از یک بانک اطلاعاتی مثل اکسس استفاده کنم بعدش اگه برنامه رو کامپایل کنم و در یک کامپیوتر دیگه اجرا کنم مشکلی بوجود نمیاد؟ منظورم اینه که آیا باید خود برنامه اکسس هم نصب بشه یا اینکه نیازی نیست؟
در ضمن من آموزش وصل شدن به بانک اکسس رو که آقای soldier بصورت pdf نوشته بود رو خواندم ولی نحوه خواندن اطلاعات از بانک رو هرچی گشتم ندیدم اگه لینک بدید ممنون میشم.

mahdi bg
21-07-2007, 07:16
سلام
نه مشکلی نداره فقط باید مسیر رو داینامیک بسازی و نیازی نیست خود برنامه اکسس هم نصب بشه
برای دومی هم می تونی از ADOQuery یا ADOTable
استفاده کنی

mohsen57
22-07-2007, 22:15
چجوری باید ازشون استفاده کرد؟ یا اگه میشه یک برنامه نمونه ساده واسم آپلود کنید.

mohsen57
23-07-2007, 01:07
یکی نیست کمک کنه؟

mahdi bg
23-07-2007, 03:59
سلام
تا چه حد با زبان SQL آشنایی داری بگو تا با ADOQuery برات یکی بذارم
اگه آشنایی نداری بگو تا با ADOTable برات یکی بذارم

mohsen57
23-07-2007, 23:14
با sql آشنایی دارم هر چی بنویسی می فهمم. اگه زحمت نیست هر دو روش رو واسم بزار.

mahdi bg
23-07-2007, 23:28
سلام


با sql آشنایی دارم هر چی بنویسی می فهمم. اگه زحمت نیست هر دو روش رو واسم بزار.

یک ADOQuery بزار رو فرم داخل خصوصیت SQL دستور SQL رو بنویس و اجرا کن

تا چند روز دیگه حتما یکی می ذارم

mohsen57
24-07-2007, 01:58
من این کار رو انجام دادم و تونستم اطلاعات رو در DBGrid نمایش بدم فقط نمی دونم چجوری میشه یک فیلد رو (همه رکوردها) در یک DBListBox نمایش داد؟

مرد مباح
24-07-2007, 02:15
این کارو نمیتونی با DBListBox انجام بدی.
کار این کامپوننت اینه که مقادیر ورودی یک رکورد رو به یک لیست که خودت تعریف میکنی محدود کنه.

برای این کار باید از ListBox و کمی کد نویسی استفاده کنی.

موفق باشی.

mohsen57
24-07-2007, 10:32
خوب اگه میشه کد رو بنویسید ممنون میشم کارم خیلی گیره.

مرد مباح
24-07-2007, 11:53
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشی

mohsen57
24-07-2007, 22:38
ممنونم چندتا سوال دیگه هم دارم که بعدا" می پرسم.

as13851365
26-07-2007, 09:46
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشی

دوست عزیز این برنامه شما یه مشکل داره که عبارت است از این
اگر کاربر بیش از یک بار این برنامه را اجرا کنه طول این لیست باکس شما زیاد خواهد بود در کل تکراری و غیره

برای جلوگیری از این کار باید ابتدای اجرا این برنامه از دستور زیر استفاده کنی تا هر بار که می خواد برنامه این کار را انجام بده ابتدا لیست باکس را پاک کنه بعد دوباره اضافه کنه دستور
:
listbox1.items.clear;
table1.first;
while not (table1.eof) do
begin
listbox1.items.add(table1['fieldname']);
table1.next;
end;

مرد مباح
26-07-2007, 12:32
ممنون که اصلاحش کردی.
ولی این کد رو من در 30 ثانیه نوشتم و اجرا نکردمش که یاد این موضوع بیفتم.

به هر حال ممنون

as13851365
28-07-2007, 08:28
دوست گرامی من به هیچ کس اهانت نکردم یعنی من چنین شخصی نیستم اما چون من با این چور مسائل بیشتر از بقیه کار ها کار کردم یکی دو تا مشکل داشتم که یکیش این بود که من بعد از یه مدت هلش کردم حالا هم به در این بحث دیدم و اصلاحش کردم

شما هر کی هم باشید و هر چی هم اطلاعات نداشته باشید مطمئن هستم اطلاعاتتون بیشتر از اطلاعات من است

نکات کوچک خیلی مهم هستند

YBB
28-07-2007, 12:23
كد فوق نيز دو مشكل دارد اول اينكه پس از اجرا اشاره گر ركورد به آخرين ركورد رفته و بنابراين محل قبلي در جدول گم مي شود و دوم اينكه كنترل هاي ويژوالي كه به بانك اطلاعاتي متصل هستند به تعداد ركوردها مرتب به روز رساني مي شود و بخصوص هنگامي كه تعداد ركوردهاي جدول زيادتر ميشوند بسيار به چشم مي آيد بنابراين

var
SavePlace: TBookMarkStr;
.
.
.
Listbox1.Clear;

with Table1 do
begin
try
SavePlace:=BookMark;
try
DisableControls;
First;
while not Eof do
begin
Listbox1.Items.Add(table1['fieldname']);
Next;
end;
finally
EnableControls;
end;
finally
BookMark:=SavePlace;
end;
end;
كه در كد فوق بوسيله
BookMark‌
محل ركورد فعلي را ذخيره ميكند و
DisableControls و EnableControls
اتصال به بانك را براي كنترلهاي ويژوال وابسته قطع و فعال ميكند

YBB
28-07-2007, 23:06
البته كار فوق را با كنترل
DBLookupList
كه در سر تب
Win3.1
وجود دارد مي توان انجام داد كه در آن مي بايست خصوصيات
LookUpSource و LookUpFild
.مقدار دهي شوند