PDA

View Full Version : خطا هنگام اجراي برنامه در دلفي



mahdy.asia
چهارشنبه 22 تیر 1390, 14:38 عصر
من در دلفي يك تايمر نوشتم (هر 1 دقيقه يكبار اجرا مي گردد) از كامپوننت TADOStoredProc استفاده كردم كه يك select را از اسكيوال مي گيرد اگر select ركوردي برگرداند از مقادير ركورد جهت نشان دادن پيام استفاده مي كنم و گر نه هيچ اما هنگامي كه در سورس هستم و برنامه در حال اجرا است و select ركوردي بر نمي گرداند منجر به خطا شده كه حوصله ام را سر برده چه كنم كه خطا ندهد
72398

یوسف زالی
چهارشنبه 22 تیر 1390, 20:28 عصر
سلام.
این اشکالی نداره که دبتاسورس شما ردیفی نداشته باشه.
به این مفهوم که در ازای Select شما در SQL هیچ ردیفی انتخاب نشه.
اما شما مجاز نیستید که در سمت SQL در ازای پارامترهای فرستاده شده به هیچ Select ی وارد نشید.
شما "باید" یک Select داشته باشید برای تطبیق تعداد و انواع خروجی آن به ADO . ولو اینکه هیچ مقداری برنگرداند.

حدس: شما به ازای مقادیر خاص در پارامترهای دلفی شی ADO در سمت SQL از تمام If ها رد می شید و وارد هیچ Select ی نمی شید.

راه حل 1: مقادیر پارامترهای ADO را در Design Time طوری ست کنید (در سمتی که به Object Inspector مشهوره) که به ازای اون مقادیر لااقل یک Select انجام بشه.
راه حل 2: در سمت SQL برای مقادیر پارامتر Null دست کم وارد یک Select شوید. اگرچه هیچ چیز بر نگرداند.

موفق باشید.