PDA

View Full Version : استفاده از ADO در Indy



jirjirakk
دوشنبه 18 تیر 1386, 16:41 عصر
سلام :)
توی IndyServer یک کامند دارم به اسم LOGIN که دو تا پارامتر ورودی داره username o password
حالا وقتی کلاینت این دو تا رو واسه سرور ارسال می کنه می خوام با ADO از بانکم Select بزنم که
اگر نام کاربری و رمز عبوری بود اطلاعاتی رو براش ارسال کنه
چند تا کامند دیگه هم دارم که کاربر وقتی اون ها رو صدا می زنه Insert, select, update انجام میده
حالا همه این ها باید بدون تداخل با هم اجرا بشن

با تشکر
جیرجیرک

soroush_vs
دوشنبه 18 تیر 1386, 17:38 عصر
شما که اینجا سوالی نپرسیدید فقط یه سری توضیحات از کاری که میخاید انجام بدید دادید.
جیرجیرک جان من حدس میزنم که میخای بدونی که برای این کاری که قراره انجام بدی چه کاری باید انجام بدی . راهی که انتخاب کردی با Indy نسبت به راه های موجود و راه های ارائه شده توسط دلفی خیلی مشکل تره.اگه میخای از سوکیت ها برای این برنامه پایگاه دادت استفاده کنی به نظر من از DataSnap (برنامه های Multi tier) استفاده کن البته از کلاس TSocketConnection.از امکانات بیشتری هم میتونی استفاده کنی.

jirjirakk
دوشنبه 18 تیر 1386, 18:34 عصر
سروش جان تشکر از پاسخت :)
برنامه ای که قصد نوشتنش رو دارم همه کاربرهاش روی اینترنت هستن
نمی دونم DataSnap روی اینترنت می تونه جوابگو نیازهام باشه یا که نه و یا اینکه کاربرهایی با سرعت هایی پایین مشکلی براشون پیش نمیاد این طوری

مشکل اصلی من استفاده از ADO برای درخواست های ارسالی کاربران هستش چون وقتی توی OnCommand از ADO استفاده می کنم پیام خطایی بهم میده

soroush_vs
دوشنبه 18 تیر 1386, 19:48 عصر
راستش رو بخای یکی از هدف های DataSnap همین تحت وب بودن برنامه ها هست.به هر حال TsocketConnection از Socket ها استفاده میکنه در مورد سرعت هم باید بگم که مطمئن راه حل های پیشنهادی Borland از راه حل های ابتکاری بهتر عمل میکنه(به دلیل اینکه هم امتحانش رو پس داده و هم راه حل شما معلوم نیست به عنوان یک سیستم همه جوانب رو در نظر گرفته باشه در DataSnap بسیاره از مسائل ارتباطی از دید برنامه نویس پنهان هست و این درصد اشتباه و خطا رو خیلی کم تر میکنه)ولی DataSnap دقیقا برای همین هدف ساخته شده.
در ضمن برنامه من هم که با DataSnap هست تحت وب مشکلی از نظر سرعت نداره حتی با ADSL 64 kilo
اگه کار با Indy رو ادامه بدی این خطا ها بیشتر هم میشه(نظر شخصی من)

jirjirakk
دوشنبه 18 تیر 1386, 21:35 عصر
مرسی سروش جان :)
مشکلی برای انتقال وجود ندارم چون بدون شک توسعه برنامه با DataSnap کار ها رو خیلی راحت می کنه بیشتر به خاطر بی اطلاعی که داشتم به سمت ایندی ها رفتم

باز هم تشکر

vcldeveloper
سه شنبه 19 تیر 1386, 00:27 صبح
DataSnap با اینترنت مشکلی نداره. اگر مشکل تنظیم Firewall یا باز کردن پورت بر روی سرور دارید، می تونید از WebService استفاده کنید که اون هم توسط DataSnap پشتیبانی میشه.
مشکل شما با ADO احتمالا برمیگرده به multithread بودن Indy. در صورتی که از ADO در داخل Threadهایی غیر از Thread اصلی استفاده می کنید، باید قبل از استفاده، اون رو برای اون Thread خاص Initialize کنید.
برای هر Thread:


uses

ActiveX,

Windows;


initialization

CoInitialize(nil);


finalization

CoUnInitialize;


end.

دقت کنید که در Indy هر Command در Thread مربوط به کلاینتی که اون Command رو ارسال کرده، اجرا میشه.

jirjirakk
چهارشنبه 20 تیر 1386, 17:57 عصر
مرسی جناب کشاورز :)
فعلا یک بوم و دو هوا شدم
موندم برای ارتباط کاربرها به سمت مالتی تایر ها برم یا مستقیم از Indy ها استفاده کنم
و همه چیز و خودم مدیریت کنم (یه جورایی ماجرای اختراع چرخ هستش اونم توسط یک بی سواد)