ورود

View Full Version : چگونگي کپي فايل از کلاینت به سرور با استفاده از psexec يا psfile



armm1388
دوشنبه 09 بهمن 1391, 07:40 صبح
با سلام
با دلفي يک نرم افزار بانک اطلاعاتي نوشته ام . بانک اطلاعاتي اس کو ال سرور است و روي سرور قرار دارد. کاربر هر رکورد را که در بانک ذخيره مي کند يک فايل ضميمه را نيز بايد ذخيره کند . به اين صورت که آدرس فايل (در سرور) در بانک ذخيره مي شود ولي خود فايل ضميمه در يک پوشه در سرور ذخيره مي شود نه در sql server .
براي اينکار دو دستور زير را نوشته ام:

ShellExecute(Handle, 'open', 'psexec', '\\194.168.35.1 -u user1 -p hamed123 -c test1.txt' '', SW_HIDE);
CopyFile('test1.txt', '\\194.168.35.1\share_folder$\test1.text, False);

1- پارامتر -c test1.txt باعث کپي فايل به سرور نمي شود بلکه دستور CopyFile اين کار را می کند با اين حال اگر اين پارامتر را ننويسيم کانکشن به سرور برقرار نمي شود. چگونه بدون استفاده از اين پارامتر، دستور psexec را بنويسيم تا کانکشن را باز کند؟
2- آيا فقط دستور psexec بکار مي رود و از دستور psfile نمي توان براي اين کار استفاده کرد؟ اگر مي شود به چه نحو است؟
3- با دستور psexec وقتی کانکشن به سرور برقرار مي شود بلافاصله چند ثانيه بعد کانکشن بسته مي شود مگر اينکه مرتب بين سرور وکلاينت فايل جابجا کنيم . چگونه مي توان زمان باقي ماندن کانکشن را افزايش داد؟

با تشکر فراوان

Felony
دوشنبه 09 بهمن 1391, 09:51 صبح
خوب که چی بشه ؟ اگر طرف رو سیستمش کلمه عبور داشت چی ؟

به جای اون کار باید از File Stream در خود SQL Server استفاده کنید که خودش فایل ها رو داخل پوشه ای جداگانه ذخیره میکنه و نیازی هم به Permisson و ... نیست و شما دقیقا مثل یک فیلد Blob باهاش رفتار میکنید .

بنابراین در مورد File Stream در SQL Server 2008 به بعد تحقیق کنید ، باقی سوالاتون هم مربوط به این بخش نمیشه و باید در بخش بانک های طالاعاتی سایت پیگیریش کنید .