PDA

View Full Version : ساخت Table از روی یه جدول دیگر



Mahdi_S_T
یک شنبه 18 دی 1384, 19:50 عصر
چطور میشه یه جدول از روی یه جدول دیگه ساخت با همان فیلدها ؟
البته جریان کلی اینه : برنامه یه جدول با اطلاعات کامل می گیره و حالا لازمه دقیقا از روی همان یه جدول مشابه ساخت ( اما تهی ). راحتش اینه یه کپی از روی جدول اصلی بگیریم و سپس جدول را خالی کرد . چه کدی برای خالی کردن یه جدول وجود داره ؟ مثل Zap
دوستان اگه روش اصولی تری می دونند لطفا کد اون رو بنویسند . ممنون

Mahdi_S_T
دوشنبه 19 دی 1384, 08:01 صبح
دوستان نظری نداشتند ؟

m-khorsandi
دوشنبه 19 دی 1384, 08:35 صبح
با چه Engine ایی کار میکنید؟

سید مسعود موحد
دوشنبه 19 دی 1384, 08:46 صبح
دوست عزیز
با چی کار میکنی با پاراداکس اس کیو ال یا اکسس یا ....
هر کدوم را ه حل خودشو داره
در ضمن تو برنامه تون با چی وصل میشین به بانکتون ADO یا BDE یا ...

saniak_robot
دوشنبه 19 دی 1384, 13:17 عصر
ببین دوست من اگه بخوای تو یه دیتابیس دیگه بریزی می تونی export کنی

Mahdi_S_T
دوشنبه 19 دی 1384, 15:15 عصر
بانک من پاراداکس و اکسس
کانکشن من با بانک با BDE است ولی اگه ADO رو هم بگی ممنون میشم .

دوست من یاسرجان . من می خوام دقیقا مانند Table اصلی یه جدول بسازم با همان فیلد ها .اما جدول دوم خالی باشه ؟ ( از طریق کدنویسی ) حالا اگه با Export میشه یه مثال بزن

Mahdi_S_T
سه شنبه 20 دی 1384, 13:58 عصر
دوستان من منتظر جوابهای شما هستم ؟!

شفیعی
چهارشنبه 21 دی 1384, 09:58 صبح
سلام
1-برای نسخه برداری از فایل پاراداکس از BatchMove استفاده کن
2- برای خالی کردن جدول نیز از دستور Table1.EmptyTable استفاده کن

Mahdi_S_T
چهارشنبه 21 دی 1384, 10:17 صبح
آره BatchMove رو میدونم
در مورد Table1.EmptyTable هم ممنون

اگه من بخوام از روی یه جدول که فاکس هست یه جدول با همان ترکیب از نوع پاراداکس یا اکسس یا MySQL بسازم باید چیکار کنم ( و برعکس )

پدرخوانده
چهارشنبه 21 دی 1384, 11:19 صبح
VAR nsize, ij,jamf,IZ: INTEGER;
c,b,s:string;
NewTable: TTable;
dbfname, tmp1,path1: String;
j: TFieldType;
begin
jamf := Table1.Fields.Count-1;
tmp1 := Table1.TableName;
ij := pos('.',tmp1);
dbfname := '';
if (ij > 0 ) then
for iz :=1 to ij-1 do
dbfname := dbfname + tmp1[iz];
Path1 := table1.Databasename + '\' ;
NewTable := TTable.Create(self);
with NewTable do
Begin
Active := False;
DatabaseName := Table1.DatabaseName;
TableName := dbfname;
TableType := ttFoxpro;
FieldDefs.Clear;
for iz := 0 to jamf do
begin
s:=Table1.FieldList.Strings[iz];
j := Table1.FieldDefs.Items[iz].DataType;
nsize := Table1.Fields[iz].Size;
FieldDefs.Add(s, j, nsize, False);
end;
End ; // End NewTable
if not NewTable.Exists then
NewTable.CreateTable; { create the table}
dbfname := newtable.TableName+'.dbf';
NewTable.Close;
end;


این تکه سورس مربوط به ایجاد یک جدول جدید (newtable) بر اساس جدول قدیم (table1) می باشد (البته در این جا خروجی جدول فاکس پرو هست)
جهت ایجاد یک جدول خالی از جدول دیگر (در حقیقت copy structure table می باشد)
شما می تونید با تغییر در پارامتر TableType خروجی متفاوت از اون بگیرید

Mahdi_S_T
چهارشنبه 21 دی 1384, 23:10 عصر
عالیه .لطفا پارامتر های مورد نظر را برای پاراداکس - اکسس - MySQL بنویسید. ( چیزی که من فهمیدم یعنی در کد بالا باید فقط پارامتر ttFoxpro را به دیگر پارامترها تغییر داد تا جدول درست شود ؟!)

MiRHaDi
پنج شنبه 22 دی 1384, 03:32 صبح
سلام
نه عزیزم BDE کلا با ADO فرق داره
برای ساخت جدول Mdb باید از Adox استفاده کنی
فکر کنم تو همین سایت در موردش مطلب دیدم
بای

Mahdi_S_T
پنج شنبه 22 دی 1384, 09:14 صبح
کامپوننتی برای تبدیل فرمت ها وجود نداره ؟ ؟

Mahdi_S_T
جمعه 23 دی 1384, 09:42 صبح
ظاهرا دوستان فرصت جواب دادن ندارند

MiRHaDi
شنبه 24 دی 1384, 02:54 صبح
سلام
برنامه های زیادی هستند !
خودت هم میتونی بنویسی
یک دوستی یک پروژه داده بود که dbf رو به mdb تبدیل کنه ( البته با تبدیلات فارسی فاکس پرو به ویندوز) براش نوشتیم ! مشکلی نداره
بای

Mahdi_S_T
شنبه 24 دی 1384, 14:54 عصر
تعجبه ! قبلا همه از نوع بانک و ... سوال می کردند ولی حالا هیچ کس جوابی نداره !؟

m-khorsandi
شنبه 24 دی 1384, 15:37 عصر
برای Access
اگه ساختار جدولتون ثابت هست میتونید از با ADOQuery کد زیر رو اجرا کنید :


CREATE TABLE tablename
(code integer,
fname text,
lname text,
phone text
)

MiRHaDi
یک شنبه 25 دی 1384, 02:11 صبح
سلام
این برای بقیه بانکها هم جواب میده ! ولی جدول میسازه ! نه بانک
برای بانک باید از AdoX استفاده کنی که تو همین سایت (یا سایت www.iranaspx.com) مقالش هست !
بای

m-khorsandi
یک شنبه 25 دی 1384, 07:23 صبح
آقای میرهادی لطفا" به سئوالات دقت کنید :

چطور میشه یه جدول از روی یه جدول دیگه ساخت با همان فیلدها ؟

Mahdi_S_T
یک شنبه 25 دی 1384, 09:58 صبح
ممنون . فعلا یه قدم جلو افتادم . منتظر جوابهای بعدی هستم

MiRHaDi
دوشنبه 26 دی 1384, 06:44 صبح
سلام
خوب ببخشید :) چشم
با Create Table تو همه بانکها میتونید این کارو بکنید (ساخت جدول)
و با Insert into اطلاعات رو بریزید
ولی چون نوع بانکها فرق میکنه برای ریختن اطلاعات باید از یک While استفاده کنید و یکی یکی Insert Record کنید
مشکل حل نشده هنوز ؟
بای

Mahdi_S_T
دوشنبه 26 دی 1384, 16:21 عصر
میرهادی عزیز ممنون . راستش من از همین روش استفاده کردم ولی اون ADOX رو نتوستنم چیزی در موردش پیدا کنم ( اون سایت باز نمیشه )

Naficy
سه شنبه 27 دی 1384, 13:00 عصر
اگر صرفا ساخت یک جدول همانند مدنظرتان است، از Select Into با یک شرط where که همواره غلط باشد استفاده کنید. (مثلا با شرط 1=2)