PDA

View Full Version : سوال: جدول MSysObjects



مجتبی جوادی
سه شنبه 03 آذر 1388, 10:15 صبح
سلام
من برای اطلاع پیدا کردن از نام جداول یک بانک اکسس از کد زیر در یک کوئری استفاده کرده ام ولی برنامه خطا می دهد . درصورتیکه همین کوئری در خود اکسس جواب می دهد . لطفا راهنمایی کنید
ممنون


with ADOQuery1 do
Close;
SQL.Clear;
SQL.Add('SELECT Name FROM MSysObjects WHERE Type=1 AND Flage=0');
Open;

حسین شهریاری
سه شنبه 03 آذر 1388, 11:24 صبح
سلام

البته مطمئن نیستم ولی تا اونجایی من خبر دارم SysObject یک جدول سیستمی در Sqlserver هستش که همون طور که میدونین اطلاعات اشیای تولید شده در پایگاه را در خودش ذخیره میکنه و فکر نکنم توی اکسس چنین اجازه ای به شما بده.

ولی بهر حال کد شما مشکلی نداره.
اگه امکان داره متن خطا را بنویسید شاید بتونم کمکتون کنم.

مجتبی جوادی
سه شنبه 03 آذر 1388, 12:35 عصر
دوست عزیز ممنون
کد sql مورد نظر در خود اکسس عمل می کنه یعنی اگر یک کوئری با کد مورد نظر ایجاد بشه ، لیت جداول رو نشان میده اما وقتی این کد از طریق دلفی فرستاده میشه ، برنامه خطا میده
ممنون

مجتبی جوادی
سه شنبه 03 آذر 1388, 16:40 عصر
دوستان کسی در این مورد اطلاعاتی نداره ؟

مجتبی جوادی
چهارشنبه 04 آذر 1388, 17:28 عصر
از اساتید بزرگ خواهش می کنم اگه اطلاعاتی دارند راهنمایی کنند چون خیلی نیاز دارم
ممنون

mehdi_moosavi
چهارشنبه 05 اسفند 1388, 13:07 عصر
باسلام و عرض ادب
دوستان محترم در مورد سوال بالا در صورت امکان راهنمایی کنید.
با تشکر

hadisalahi2
جمعه 07 اسفند 1388, 17:40 عصر
برای پیدا کردن نام جدول ، خود ADoConnection یا متد به نام FindTable داره که میتونی از اون استاده کنی.
همین کلمه رو جستجو کن ، جوابت رو پیدا میکنی.
یا حق

mehdi_moosavi
یک شنبه 09 اسفند 1388, 17:14 عصر
سلام
دوست عزیز من با دلفی 7 کار میکنم ولی AdoConnection متدی بنام FindTable نداره اگه ممکنه کاملتر راهتمایی کنید
با تشکر

Modernidea
یک شنبه 09 اسفند 1388, 20:23 عصر
چرا متن خطا را قرار نمیدهید؟

mehdi_moosavi
دوشنبه 10 اسفند 1388, 09:44 صبح
سلام
پیغام اینه که دسترسی به این فایل مجاز نیست در صورتی که برای جستجوی اینکه آیا یک جدول خاص در یک دیتابیس اکسس وجود دارد یا نه باید به این فایل دسترسی داشت
لطفا راهنمایی کنید
با تشکر

Modernidea
دوشنبه 10 اسفند 1388, 13:49 عصر
سلام
پیغام اینه که دسترسی به این فایل مجاز نیست در صورتی که برای جستجوی اینکه آیا یک جدول خاص در یک دیتابیس اکسس وجود دارد یا نه باید به این فایل دسترسی داشت
لطفا راهنمایی کنید
با تشکر

خوب برا اینکه دیگه با این پیغام مواجه نشید باید جدول مربوطه را با Access باز کنید و مراحل ذیل را انجام دهید :
به منوی tools -> options و از برگه View گزینه System Object را تیک بزنید.
ok کنید.
به منوی tools -> security -> user and group permissions رفته و در قسمت Object name گزینه MSysObjects را انتخاب کنید و در قسمت Permissions تیک گزینه Read Data را بزنید و Ok کنید.

شما با این کار اجازه دسترسی به این جدول را از طریق برنامه میدهید.

و از این کد برای نمایش جدول ها استفاده کنید(کد که شما نوشتید اشتباه است).

with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT MSysObjects.Name, MSysObjects.Type, MSysObjects.Flags FROM '+
'MSysObjects WHERE (((MSysObjects.Type)=1) '+
'AND ((MSysObjects.Flags)=0));');
Open;
end;

موفق باشید.