hamid-nic
یک شنبه 11 مهر 1389, 01:03 صبح
سلام دوستان وقتتان بخیر
یک sp در بانک اطلاعاتی SQL Server نوشتم که کار جست و جوی دینامیک را انجام میده و تقریباً یه 10 تایی پارامتر اختیاری می گیره . توی دلفی برای گزارش ها از یک sp استفاده کردم و همه ی گزارش ها را به یک AdoStoredProc متصل کردم .
به این شکل از اون استفاده می کنم (مثلا برای یک نوع گزارش ) :
MainDataModule.SPSearchDynamic.Close ;
MainDataModule.SPSearchDynamic.Parameters.ParamByN ame('@FirstTimeDate').value:=(FirstTime);
MainDataModule.SPSearchDynamic.Parameters.ParamByN ame('@LastTimeDate').value:=(LastTime);
MainDataModule.SPSearchDynamic.Parameters.ParamByN ame('@CodeDriver').value:=StrToint(AdvDBLookupComb oBox1.Text);
MainDataModule.SPSearchDynamic.ExecProc ;
MainDataModule.SPSearchDynamic.Active :=true;
برای گزارش های دیگه هم به همین ترتیب استفاده می شه فقط پارامتر هاش فرق می کنه .
مشکل اینجاست که پس از چند بار استفاده از گزارش های مختلف دیگه جست و جو انجام نمیشه و باید برای جواب گرفتن حداقل یک بار برنامه را بسته و دوباره اجرا کنم .
احساس می کنم که پارامتر ها پس از چندین بار استفاده در گزارش های مختلف ، مقادیر را در خود نگه می دارند و باعث میشه که جست و جو درست انجام نشه .
آیا این روش که استفاده کردم درست هست یا نه ؟ و به نظر شما چگونه این مشکل را برطرف کنم ؟
یک sp در بانک اطلاعاتی SQL Server نوشتم که کار جست و جوی دینامیک را انجام میده و تقریباً یه 10 تایی پارامتر اختیاری می گیره . توی دلفی برای گزارش ها از یک sp استفاده کردم و همه ی گزارش ها را به یک AdoStoredProc متصل کردم .
به این شکل از اون استفاده می کنم (مثلا برای یک نوع گزارش ) :
MainDataModule.SPSearchDynamic.Close ;
MainDataModule.SPSearchDynamic.Parameters.ParamByN ame('@FirstTimeDate').value:=(FirstTime);
MainDataModule.SPSearchDynamic.Parameters.ParamByN ame('@LastTimeDate').value:=(LastTime);
MainDataModule.SPSearchDynamic.Parameters.ParamByN ame('@CodeDriver').value:=StrToint(AdvDBLookupComb oBox1.Text);
MainDataModule.SPSearchDynamic.ExecProc ;
MainDataModule.SPSearchDynamic.Active :=true;
برای گزارش های دیگه هم به همین ترتیب استفاده می شه فقط پارامتر هاش فرق می کنه .
مشکل اینجاست که پس از چند بار استفاده از گزارش های مختلف دیگه جست و جو انجام نمیشه و باید برای جواب گرفتن حداقل یک بار برنامه را بسته و دوباره اجرا کنم .
احساس می کنم که پارامتر ها پس از چندین بار استفاده در گزارش های مختلف ، مقادیر را در خود نگه می دارند و باعث میشه که جست و جو درست انجام نشه .
آیا این روش که استفاده کردم درست هست یا نه ؟ و به نظر شما چگونه این مشکل را برطرف کنم ؟