ورود

View Full Version : سوال: تغيير Properties يك فيلد از طريق برنامه



connector
یک شنبه 15 دی 1387, 11:58 صبح
سلام
يه سوال داشتم
چطور ميشه Properties يك فيلد بانك اكسس را از طريق برنامه تغيير داد؟
مثلا يك بانك اكسس داريم كه يه فيلد داره با نام "تلفن" و در Properties اين فيلد تعريف شده كه اين فيلد حداكثر 10 كاراكتر رو ميتونه قبول كنه.حالا فرض كنيد ما ميخواهيم از طريق خود برنامه اين مقدار رو به 15 افزايش بديم.لطفا بفرماييد بايد چه كرد؟
با تشكر از همه دوستان

mafazel
یک شنبه 15 دی 1387, 17:33 عصر
مثلا برای اینکه طول فیلد Name از جدول Table1 رو به 50 افزایش بدهید از یک AdoQuery استفاده کنید:


ADOQuery1.SQL.Text := 'ALTER TABLE Tabel1 ALTER COLUMN Name TEXT(50)';
ADOQuery1.ExecSQL;

بهمین ترتیب میتوانید سایز فیلد را کم کنید اما ابتدا طول داده ها رو (مثلا با دستور Update) کم کنید که به خطا بر نخورید.
بجای عبارت ALTER COLUMN با استفاده از ADD COLUMN یا DROP COLUMN میتوانید فیلدی اضافه یا حذف کنید.

connector
یک شنبه 15 دی 1387, 20:02 عصر
آقا خيلي ممنون از جوابتان مشكلم حل شد حالا يك سوال ديگه برام پيش اومد حالا اگر بخوام DataType يك فيلد رو از Number به Text تبديل كنم بايد چكار كنم؟

mafazel
دوشنبه 16 دی 1387, 07:00 صبح
همان دستور!
این دستور نوع فیلد را هم تغییر می دهد. حتی بالعکس میتوانید TEXT را به NUMBER یا BYTE یا SINGLE یا چیزهای مجاز دیگر تغییر بدهید.

connector
سه شنبه 17 دی 1387, 12:26 عصر
باز هم ممنون از جوابتان من دستور زیر را استفاده کردم برای تغییر نوع داده فیلد Tel از جدول Contacts از Number به TEXT


ADOQuery1.SQL.Text := 'ALTER TABLE Contacts MODIFY Tel TEXT(100)';
ADOQuery1.ExecSQL;

ولی موقع اجرای دستور ارور زیر میاد:
Syntax Error in ALTER TABLE Statement
اگه میشه راهنمایی کنید که مشکل از کجاست؟
ممنون

connector
پنج شنبه 19 دی 1387, 00:33 صبح
آقا mafazel (http://barnamenevis.org/forum/member.php?u=73907) کجایی داداش کارم گیره:ناراحت:

mafazel
پنج شنبه 19 دی 1387, 06:55 صبح
سلام دوست عزیز - شرمنده، مدتی دسترسی به اینترنت نداشتم
شما دستور MODIFY رو از کجا آوردی؟ همون دستور ALTER نوع را هم تغییر میدهد.
از کد زیر استفاده کن


ADOQuery1.SQL.Text := 'ALTER TABLE Contacts ALTER Tel TEXT(100)';
ADOQuery1.ExecSQL;

connector
جمعه 20 دی 1387, 19:54 عصر
ممنون mafazel (http://barnamenevis.org/forum/member.php?u=73907) جان
بالاخره با كمك شما مشكلم حل شد فقط اگر يك منبع خوب در زمانيكه آدم تو دستورات sql گير ميكنه بتونه ازش استفاده كنه معرفي كنيد واقعا ممنون ميشم.
با تشكر فراوان

mafazel
شنبه 21 دی 1387, 07:19 صبح
از لطف شما متشکرم.
اگر به اینترنت دسترسی داشته باشید بهترین منبع اینترنت و بهترین نقطه شروع Google است.
اگر دسترسی نداشته باشید بهترین منبع Help نرم افزار و نمونه کدهای داخل Help و Demo های آن است.
بعنوان نمونه قسمتی از Help نرم افزار Access رو در مورد کلمه ALTER رو ببینید:

Use ALTER COLUMN to change the data type of an existing field. You specify the field name, the new data type, and an optional size for Text and Binary fields. For example, the following statement changes the data type of a field in the Employees table called ZipCode (originally defined as Integer) to a 10-character Text field:
ALTER TABLE Employees ALTER COLUMN ZipCode TEXT(10) o
می بینید که دقیقا مورد شما رو در مثالش توضیح داده. (اما کلمه ALTER رو از کجا بدونیم که راهنماش رو ببینیم؟!)
یکبار توی دبیرستان از دبیر ریاضی پرسیدم بهترین کتاب برای یادگیری ریاضی چیه(و انتظار معرفی یک کتاب توی بازار رو داشتم)؟ گفت کتاب درسی خودتون! این کتاب رو برای چند ده هزار نفر مثل تو نوشتند و مدتها روش کار کرده اند. Help نرم افزار هم همین حالت رو داره. کسانی که دلفی رو ساختند برای کسانی که از آن استفاده می کنند این راهنما رو ساختند. فقط عیب راهنمای نرم افزار اینه که با سوالات محاوره ای نمیشه بخوبی مطلب رو پیدا کرد ولی توی اینترنت چون این سوال رو احتمالا کسی قبلا پرسیده و بهش جواب داده اند خیلی بهتر میشه پیدا کرد.
راهنما های نرم افزار های میکروسافت خیلی مفید نیست (جوک راهنمایی میکرو سافت رو که شنیدید؟) ولی MSDN و سایت آن خیلی کامل و جامع است.
یک منبع کوچک دم دست دستورات SQL فایل LOCALSQL.HLP در مسیر C:\Program Files\Common Files\Borland Shared\BDE است (توی دلفی 7).
یک منبع خوب هم راهنمایی دیگران است که شما هم باید به اندازه خودتون یکی از سرچشمه های این منبع باشید.
موفق باشید.

جواد ملاولی
سه شنبه 13 اسفند 1387, 09:32 صبح
سلام. تبدیل خاصیت Auto Number فیلد کلید به Number و بالعکس چطوره؟