PDA

View Full Version : تعریف کلاس با خصوصیات متغير



seven_7_sky
جمعه 11 بهمن 1387, 16:23 عصر
با سلام .

یه مشکلی داشتم که در 2 تاپیک مطرح کردم .
(تعریف تابع در زمان اجرا (http://barnamenevis.org/forum/showthread.php?t=145497) و تعریف خصوصیات کلاس در زمان اجرا (http://barnamenevis.org/forum/showthread.php?t=145492))
بعدا متوجه شدم که با این روش نمی توانم مشکلم رو حل کنم .

مشکل از این قرار است :
می خوام یه کلاسی تعریف کنم که با خواندن اطلاعات از
SQL server
برا هر جدول یه زیر کلاس با نام خود جدول بسازه . که عمل
insert ,del, update,
به صورت اتوماتیک بشه براش در زمان ساختان کلاس براش تعریف کرد .

منظورم این است که در هنگام کد نویسی برا درج یک رکورد دیگر نیازی به نوشتن



with GeneralQ do
begin
Close;
SQL.Clear;
SQL.Add(' INSERT INTO table1(filed1,filed2)');
SQL.Add(' VALUES ('+IntToStr(id_s)+', '+IntToStr(id_t)+'');
ExecSQL;
end;

نباشد . و به جای آن بتوان


db.Tabel1Insert(filed1,filed2);

کد بالا رو برا هر جدول دلخواه نوشت و از امکانات شی گرای دلفی استفاده کرد . مثل تصویر
func

باشد .


وقتی جدول زیاد باشد بیشتر زمان پروژه برای این کار صرف می شود . اگه راه دیگری هم به غیر تعریف کلاس وجود دارد لطفا راهنمایی کنید

متشکرم

vcldeveloper
جمعه 11 بهمن 1387, 21:31 عصر
لطفا برای ی موضوع چند تاپیک ایجاد نکنید. هر تاپیک برای یک موضوع هست.

کاری که شما می خواید بکنید را دلفی براتون انجام داده، در تاپیک قبلی تان هم گفتم که، کامپوننت های کار با بانک اطلاعاتی دلفی (دیتاست ها)، همگی از کلاس TDataset مشتق شدند، و همگی بطور پایه متدهایی مثل Insert, Edit, Append, Delete, Cancel, Post، و غیره را به ارث بردند که با استفاده از آنها، شما می توانید بدون توجه به نوع دیتابیس، رکوردهای یک جدول را ویرایش/حذف/اضافه کنید.

arash_ebrahimi_nk
شنبه 12 بهمن 1387, 00:54 صبح
من زیاد از جریان کلاس ها سر در نمیارم اما شما میتونید تابع بنویسید برای خودتون مثلاً


function gInsert(dbName: TSQLTable; field1, field2: String): Boolean;
begin
Result := False;
with dbName do begin
Close;
SQL.Clear;
SQL.Add(' INSERT INTO table1(filed1,filed2)');
SQL.Add(' VALUES ('+IntToStr(id_s)+', '+IntToStr(id_t)+'');
ExecSQL;
end;
Result := True;
end;