ورود

View Full Version : روش کلی ایجاد اتصال، اضافه، حذف و ویرایش در برنامه های Database



sknsphr
چهارشنبه 29 شهریور 1385, 14:57 عصر
لطفا اگر کسی بلده یه کم حوصله به خرج بده و دریغ نکنه.

1- من تو برنامه ام یه متغیر Cn دارم از نوع ADODB.Connection با SQL Server ارتباط داره. تو کل برنامه برای ارتباط با Database از این استفاده می کنم.

2- تو یکی از فرمها یه query شبیه این دارم:

Select ,,,tblproducer.Name
From tblReport INNER JOIN tblProducer
ON tblReport.PCode = tblProducer.Code

جدول اصلیم tblReport است.
بعد اینو تو rs باز میکنم و بعد نسبت میدم به Datagrid.DataSource که حدود 7000 رکورد رو نشون میده.

3- برای اضافه، از rs مربوط به DataGrid نمی تونم استفاده کنم- با AddNew- انگار چون rs از چند تا جدوله، خطا میده. بعد مجبورم با INSERT query مستقیم تو جدول بنویسم. بعد برای اینکه رکورد جدید رو تو DataGrid نشون بده، مجبورم rs.Requery کنم. که این خیلی زمان بره.

4- حالا میخوام بدونم مشکل کار کجاست؟ شما همچین مشکلی ندارید؟ کجای روشم رو باید عوض کنم؟

5- البته میتونم یه سری فیلدها رو تو DataGrid که از جدول tblReport نیست، UnBound کنم و بعد برای نمایش اونا از DataGrid.UnboundColumnFetchِ استفاده کنم. اونم مشکلات خودشو داره. میخوام بدونم راه دیگه نداره؟

اگه جایی تو تالارها چیزی هست بگید برم ببینم. من یه کم گشتم چیزی پیدا نکردم.

ممنون

yavari
پنج شنبه 30 شهریور 1385, 18:29 عصر
سلام


برای اضافه، از rs مربوط به DataGrid نمی تونم استفاده کنم- با AddNew- انگار چون rs از چند تا جدوله، خطا میده. بعد مجبورم با INSERT query مستقیم تو جدول بنویسم. بعد برای اینکه رکورد جدید رو تو DataGrid نشون بده، مجبورم rs.Requery کنم. که این خیلی زمان بره.

راه همینه فقط باید پروژه رو با حداقل کدنویسی و تعمیم فانکشنات انجام بدی ، در ضمن میدونی که SQL سرعت بالائی داره ، کجای کار شما زمان زیاد میبره ، من که مشکلی ندارم ، مطمئنی ؟؟

موفق باشید

sknsphr
پنج شنبه 30 شهریور 1385, 20:05 عصر
rs.Requry زمان زیادی میبره. 7000 تا رکورد رو میخواد دوباره بخونه. شما هم وقتی میخواهید تو همچین rs با AddNew اضافه کنید، مشکل دارید؟ بعد "تعمیم فانکشنات" یعنی چی؟ کدوم فانکشنا؟

yavari
شنبه 01 مهر 1385, 17:15 عصر
سلام

ببین ، من اطلاعات زیادی ندارم و از rs.Requry هم میشه گفت اصلا استفاده نمی کنم:خجالت: عوض اون از

rs.UpdateBatch adAffectCurrent
استفاده میکنم و فکر میکنم دلیل اینکه با مشکلی مثل شما روبرو نشدم استفاده از این دستور باشه ، اگه اشتباه نکنم rs.Requry از نو کوئری میگیره ولی مال من فقط رکورد جاری رو آپدیت میکنه !
شما روش منو امتحان کن ببین چی میشه !
امیدوارم بشه ، اما اگه نشه فکر میکنم دیگه باید بری دنبال قضیه Paging و این حرفا !

موفق باشی