ورود

View Full Version : تغییر یا اضافه کردن یک فیلد در دیتابیس



rahro
دوشنبه 02 بهمن 1385, 13:39 عصر
سلام
آیا راهی وجود داره که با کد نویسی بتوانم یک فیلد از دیتابیس خود را تغییر دهم یا اضافه کنم ؟
منظورم یک دستور خاصه !
فکر میکنم دستور alter table یک چنین کاری میکنه ولی مثال واضحی در خصوص تغییر یا اضافه کردن یک فیلد ندارم . دوستان میتوانند کمک کنند.
رهرو

binyaz2003
دوشنبه 02 بهمن 1385, 15:46 عصر
در قسمت ALTER TABLE - SQL Command راهنمای فاکس مثال های کاملی زده از جمله مثال 2

rahro
سه شنبه 03 بهمن 1385, 10:30 صبح
در قسمت ALTER TABLE - SQL Command راهنمای فاکس مثال های کاملی زده از جمله مثال 2
سلام استاد
قبل از بیان این موضوع تست زدم منظور شما این مثال است:


ALTER TABLE Customer ADD PRIMARY KEY Cust_id TAG Cust_id
ALTER TABLE Customer ALTER COLUMN Cust_id Character(5) PRIMARY KEY

که فکر میکنم تغییر و دومی اضافه کردن یک فیلد باشد.
ولی فرمان خطا مبنی بر عدم شناختن متغیر Cust_id (اسم فیلد جدید)میدهد.
شاید برداشت من اشتباه بخاطر همین تقاضا کردم دوستان مثالی با توضیح بزنند.
فکر کنم لازمه توضیح بیتشری بدهم.
معمولا در بعضی از برنامه نویسها دیده ام که بعد از تکمیل پروژه خود چون پروژه رو بصورت گسترده تحویل مشتریان میدهند در صورتی که در برنامه لازم باشه یک فیلد به بانک اطلاعاتی خود اضافه کنند و یا تغییر دهند با مشکلاتی روبه رو میشوند ومعمولا به تقاضای بعضی از مشتریان در خصوص بعضی از تغییرات به خاطر همین مورد فوق موافقت نمیکنند . من در حال طراحی برنامه ای هستم ( هم اکنون 70 درصد آن تکمیله ) که بتونه به پروژه اضافه بشه و مشخصات تمامی اطاعات دیتابیس را ائم از نام دیتابیس - نام بانک اطلاعاتی - نام فیلد - نام ایندکس - مشخصات فیلد رو در یک تیبل آزاد ذخیره میکنه . با توجه به اینکه اون تیبل به صورت include با پروژه ادغام میشه برنامه نویس قادره اطلاعات ذیل رو از این بانک بگیره
1- با نوشتن یک کد به صورت تکست تمامی کد برنامه نویسی بازسازی فایلها رو تنها با یک کلید بصورت تکست بدست بیاره یا اون رو در یک تیبل ازاد دیگه بصورتی ذخیره کنه که با یک فرم از روی اطلاعات آن اقدام به بازسازی فایلها کنه .
2- در مرحله اول ارتقاء برنامه و بصورت اتوماتیک مشخصات تمامی دیتابیس رو با بانک همراه کنترل کنه و هر گونه تغییری رو اصلاح کنه.
3- در صورتی که یک تیبل از دیتابیس حذف بشه بعد از فرمان erorring سیستم اتوماتیک از روی مشخصات بانک مربوطه, تیبل مورد نظر رو به وجود بیاره .
و سایر استفاده های دیگه .
قول میدهم اگر تکمیل شده برای دوستان آپلودش کنم . چطوره!!
رهرو

rezakhj
سه شنبه 03 بهمن 1385, 12:39 عصر
من هم یک همچین چیزی نیاز دارم البته نه فیلد بلکه جدول جدید در دیتابیس
---------------------------------------------------------------------------------
یعنی در برنامه میخواهم با تغییر ماه یا سال فایل جدیدی ایجاد گردد مثلا فایل salary_11_85
1- آیا بهتر است از یک فایل salary استفاده کنم و برای هر سال یک پوشه و داخل پوشه سال 12 پوشه دیگر برای ماهها با جداول کاملا هم نام ؟
( پوشه 1385و داخل پوشه 1385 پوشه های 1 و2و...12)
یا روش بالا بهتر است یعنی یک فایل با نام salary_11_85 , salary_10_85,...

2- آیا از جداول آزاد استفاده کنم یا دیتابیس ؟
اگر از دیتا بیس استفاده کنم نحوه معرفی فایلهای جدید به دیتابیس چگونه است ؟

3- و زمانی که فرم را طراحی میکنم از dataenvironment که استفاده میکنم جدول معرفی شده را می شناسد برای معرفی جدول جدید و ایجاد شده باید چه کاری انجام بدهم ؟

rahro
سه شنبه 03 بهمن 1385, 13:04 عصر
خودم پیدا کردم
با این دستور میشه یک فیلد جدید به دیتابیس اضافه کرد


ALTER TABLE tbl6 ADD ali1 Character(5)

و با این دستور میشه فیلد مورد نظر رو تغییر داد


ALTER TABLE tbl6 ALTER COLUMN ali1 n(5

rezaTavak
سه شنبه 03 بهمن 1385, 18:37 عصر
برای تغییر مشخصاتی مانند caption هم از dbsetprop استفاده کنید و برای گرفتن مشخصات از dbgetprop این دو تابع است.

rahro
چهارشنبه 04 بهمن 1385, 09:37 صبح
سلام
این دستور:


ALTER TABLE tbl6 ALTER COLUMN ali1 n(5(

توی پنجره command درست عمل میکنه ولی توی پروژه دنبال فایل بانک اطلاعاتی میگرده !!
موضوع چیه ؟

rahro
چهارشنبه 04 بهمن 1385, 13:34 عصر
سلام
این دستور:


ALTER TABLE tbl6 ALTER COLUMN ali1 n(5(

توی پنجره command درست عمل میکنه ولی توی پروژه دنبال فایل بانک اطلاعاتی میگرده !!
موضوع چیه ؟

آخه این چی میخواد کلافه کرده منو ؟!!!!!!

rezaTavak
چهارشنبه 04 بهمن 1385, 21:20 عصر
ببین با open database درست میشه یا نه. (قبل از دستور بکار ببرید)