بازم خیلی ببخشید من اشتباها فایل exe را ضمیمه کردم
بازم خیلی ببخشید من اشتباها فایل exe را ضمیمه کردم
جناب کشاورز ، فرمایش شما متین است ! ولی من تا حالا به مورد هایی بر خوردم که دلفی الکی Error میده در صورتی که اگه بیرون IDE تست کنی Error در کار نیست ! تا اونجا که من میدونم بر داشتن این تیک باعث میشه شما بجای Error خود دلفی Error ویندوزی را ببینید که به نظر من قابل فهم تره تا EAccessViolation های دلفی ! البته صحبت شما را رد نمیکنم چون درسته ! منظور از چرت و پرت این بود که اگه برای یک Error این چک را بگذارین و حذف کنین ! بعضی وقتها متوجه اختلافات فاحشی میشین ! مثلا اگه Socket Error داشته باشید ! و چک فعال باشه شما فقط متوجه یه ESocketError میشین اما نمیگه شماره Error چیه ! اما خود ویندوز شماره Error را هم توی پیغام در صورت برداشتن چک میده ! منظور منم از چرت و پرت این بود !ین دیگه از اون حرف ها بود!! Access Violation چرت و پرت دیگه چیه؟! اون گزینه ایی که شما گفتید غیرفعال کنند، باید فعال باشه تا برنامه نویس تمام خطاهای پنهان و آشکاری که در برنامه رخ میده را ببینه و به آنها رسیدگی کنه.
در رابطه با مشکل دوستمون فکر کنم همه موضوعات حاشیه ای بر طرف شد ! اما اگه شما با COnnection String که من دادم وصل شدین به سرور دیگه مشکلی توی شبکه ندارین ! بهنره یک User با privilage از نوع Database Administrator توی MSSQL بسازین و با اون تست کنید ! SA هم user System Admin خود MSSQL هست که موقع نصب شما Password را ست میکنید ! اگه ست نکردین در زمان نصب احتمالا Pass نداره ! Pass را یکبار خالی چک کنین !
قبل از اینکه این Thread به 5 یا 6 صفحه برسه ! بهتره یکبار مطالب را دسته بندی کنین و کامل تست کنین ! چون همه موضوعات مربوطه توی این Thread گفته شد !
[quote=Unique;682632] در رابطه با مشکل دوستمون فکر کنم همه موضوعات حاشیه ای بر طرف شد ! اما اگه شما با COnnection String که من دادم وصل شدین به سرور دیگه مشکلی توی شبکه ندارین ! بهنره یک User با privilage از نوع Database Administrator توی MSSQL بسازین و با اون تست کنید ! SA هم user System Admin خود MSSQL هست که موقع نصب شما Password را ست میکنید ! اگه ست نکردین در زمان نصب احتمالا Pass نداره ! Pass را یکبار خالی چک کنین !
quote]
ایشان می گویند از روی سرور کانکت می شون پس user و password ایشان درست است
به قدری هر کی اومده یه چیزی گفته که اصلا نمیشه پیگیری کرد ! این آخرین چیزهایی هست که به ذهن من میرسه !
شما اول از همه برنامه را روی سرور تست کن اگه با کانکشن استرینگ زیر جواب گرفتی (من user و Pass را تستی دادم ! با user و pass خودت عوض کن)
Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=yourDB;Data Source=local
یه جاهایی هم دوستان از ODBC حرف زدند که اصلا خودت را درگیرش نکن ! OleDB مایکروسافت کاملا با MSSQL خوب و عالی کار میکنه !
حالا اگه وصل شده بدون خطا یعنی اینکه هیچ مشکلی نداری ! اگه خطا میگیری ! اول تست کن ببین user و pass که دادی درست باشه ! امیدوازم حدافل در زمان نصب MSSQL احراز هویت را روی Mix mode یعنی هم Windows و هم MS Sql Server گذاشته باشی ! سرور را هم به صورت Client / Server نصب کرده باشی ! که اگه اینطور نبوده ! همه سر کار هستند و شما اصلا نصب MSSQL سرور تون مشکل داره !
وقتی تونستی روی سرور OK جواب بگیری ! تنها کار اینه که بجای local از ip سرور روی کلاینت ها استفاده کنی ! که اگه نشه ! 100% به دو موضوع بر میگرده ! سرور اصلا اجازه Remote Connection نمیده و یا شبکه خودت مشکل داره !
حالا اگه جواب تست های منو بدی بیشتر میتونم راهنماییت کنم ...
علت اینکه بیرون IDE خطایی در کار نیست این هست که اون خطا توسط exception handling در کد شما، یا در کدی که شما به هر نحوی استفاده می کنید (مثلا در کد یک کامپوننت) خفه شده. شما خطا را بیرون IDE نمی بینید، ولی در داخل IDE همه خطاها نمایش داده می شوند، تا برنامه نویس بداند که چه خطاهایی در هنگام اجرای برنامه اش رخ می دهند، و اگر خطا نمایش داده نمی شود، چه کدی، و به چه شکلی آن را خفه می کند. این امر باعث می شود که هیچ خطایی از چشم برنامه نویس پنهان نماند. ایده ایی که شما مطرح می کنید آن هست که خطا زمانی خطا هست که بصورت یک پیغام به کاربر نمایش داده شود، و تا زمانی که پیغام خطایی به کاربر نهایی نمایش داده نمی شود، چندان اهمیتی ندارد که آن را بررسی کنیم! نتیجه همچین تفکری میشه تولید نرم افزارهای پر از باگ های پنهان که باید مدت ها وقت صرف کرد تا اشکال واقعی آنها کشف بشوند.جناب کشاورز ، فرمایش شما متین است ! ولی من تا حالا به مورد هایی بر خوردم که دلفی الکی Error میده در صورتی که اگه بیرون IDE تست کنی Error در کار نیست ! تا اونجا که من میدونم بر داشتن این تیک باعث میشه شما بجای Error خود دلفی Error ویندوزی را ببینید که به نظر من قابل فهم تره تا EAccessViolation های دلفی ! البته صحبت شما را رد نمیکنم چون درسته !
این بخاطر آن هست که دیباگر دلفی خطا Exception را در مراحل مختلف چرخه حیاتش دنبال می کند. یک Exception ممکن است از یک کد بسیار سطح پایین تولید شود، و مرحله به مرحله از یک سطح به سطح بالاتری منتقل شود، و در هر سطح اطلاعاتی به آن اضافه شود. دیباگر برای اینکه به شما امکان پیگیری این فرایند را بدهد، از لحظه اول تا لحظه آخر مراحل حرکت Exception را به شما نمایش می دهد. مثلا در بعضی مواقع می بینید که یک خطا بعد از تولید، و کلیک بر روی دکمه Continue، بلافاصله تکرار می شود. این یعنی خطا در یک سطح پایین رخ داده، در آنجا Exception تولید شده، ولی بعد از پردازش آن، Exception مجددا توسط کد raise شده، تا به سطح بالاتری برسد، و کد سطح بالاتر هم Exception را دریافت کرده، و مجددا آن را raise کرده است.منظور از چرت و پرت این بود که اگه برای یک Error این چک را بگذارین و حذف کنین ! بعضی وقتها متوجه اختلافات فاحشی میشین ! مثلا اگه Socket Error داشته باشید ! و چک فعال باشه شما فقط متوجه یه ESocketError میشین اما نمیگه شماره Error چیه ! اما خود ویندوز شماره Error را هم توی پیغام در صورت برداشتن چک میده ! منظور منم از چرت و پرت این بود !
همچین روالی برای یک برنامه نویس کم حوصله که توجهی به کیفیت نرم افزار تولیدی ندارد، یک روال خسته کننده و ملال آور هست. ولی برنامه نویسی که به کیفیت نرم افزار تولیدی اهمیت می دهد، به تک تک این Exception ها توجه نشان می دهد، و معنی هر یک از آنها، چگونگی بوجود آمدن آنها، و مسیری را که طی می کنند تا به کاربر برسند را دنبال می کند.
بعد از بررسی های فنی مناسب، برای آنکه برنامه نویس متوجه شود که روند اجرای برنامه در زمان وقوع آن خطاها از دید کاربر برنامه چگونه هست، می تواند با استفاده ازگزینه Run without debugger برنامه را به شکل عادی اجرا کند.
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
1- IP مورد نظر كه error مي دهد يك IP اينترنتي است و نمي تواند IP داخلي باشد.
2- وقتي روي خود سرور جواب مي دهد و از Client جواب نمي دهد يعني USER مورد نظر اجازه دسترسي ندارد. (در صورتي كه مابقي تنظيمات صحيح باشد.)
موفق باشيد.
همونطور که قبلا هم گفتم صحبت شما بسیار متن و درست است ! اما موضوع اینه که نمیشه از هر برنامه نویس (مخصوصا تازه کار) توقع داشت که متوجه این روال باشه ! و اگه بخوای جوابشو درست بدی مجبوری بدونی Error که سیستم عامل گزارش میکنه چیه ! من خودم اون اوایل کارم خیلی اذیت شدم تا بفهمم کجا و چرا داره Error میده ! بعد از Run Without Debugger بود که با حل مشکل ! Run With Debugger هم مشکلش حل می شد ! کلا اعتقاد دارم Delphi خطاهایی که گزارش میکنه زیاد قابل پیگیری نیست ! اما ابزار قدرت مندی برای Debug برنامه ها داره !این بخاطر آن هست که دیباگر دلفی خطا Exception را در مراحل مختلف چرخه حیاتش دنبال می کند. یک Exception ممکن است از یک کد بسیار سطح پایین تولید شود، و مرحله به مرحله از یک سطح به سطح بالاتری منتقل شود، و در هر سطح اطلاعاتی به آن اضافه شود. دیباگر برای اینکه به شما امکان پیگیری این فرایند را بدهد، از لحظه اول تا لحظه آخر مراحل حرکت Exception را به شما نمایش می دهد. مثلا در بعضی مواقع می بینید که یک خطا بعد از تولید، و کلیک بر روی دکمه Continue، بلافاصله تکرار می شود. این یعنی خطا در یک سطح پایین رخ داده، در آنجا Exception تولید شده، ولی بعد از پردازش آن، Exception مجددا توسط کد raise شده، تا به سطح بالاتری برسد، و کد سطح بالاتر هم Exception را دریافت کرده، و مجددا آن را raise کرده است.
همچین روالی برای یک برنامه نویس کم حوصله که توجهی به کیفیت نرم افزار تولیدی ندارد، یک روال خسته کننده و ملال آور هست. ولی برنامه نویسی که به کیفیت نرم افزار تولیدی اهمیت می دهد، به تک تک این Exception ها توجه نشان می دهد، و معنی هر یک از آنها، چگونگی بوجود آمدن آنها، و مسیری را که طی می کنند تا به کاربر برسند را دنبال می کند.
با این موضوع هم موافق نیستم که کیفیت برنامه را با استفاده کردن از Run With Debugger یا بدون اون محک بزنیم ! به نظر من Debug کاملا تجربی هستش ! و برنامه نویسان خوب کمتر به دام این خطا های به قول شما خفه شده در برنامه میفتند !
بازم از مطالب بسیار مفیدی که گذاشتین تشکر میکنم.
سلام
جناب آقای استاد کشاورز شما دیگه چرا؟
توی این تاپیک بحث سر نحوه گزارشهای خطا نیست. کاش برای این موضوع یک تاپیک جداگانه باز میکردید و بحث رو اونجا ادامه میدادید.
جسارت بنده را ببخشید.
من راهنمایی درباره گزارش خطا نکردم؛ یکی از دوستان در جواب به کاربر سوال کننده راه حلی مطرح کردند که اگر به همان صورت رها میشد، نه تنها مشکل کاربر سوال کننده برطرف نمیشد، نتیجه اش کسب یک عادت بد برنامه نویسی بود. اگر در تاپیک جداگانه مطرح می شد، آن پست به همان شکل در این تاپیک برای کاربر سوال کننده و سایر کاربرانی که در آینده روزی به این تاپیک مراجعه خواهند کرد، باقی می ماند.توی این تاپیک بحث سر نحوه گزارشهای خطا نیست. کاش برای این موضوع یک تاپیک جداگانه باز میکردید و بحث رو اونجا ادامه میدادید.
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
من فقط 2 سوال بپرسم :
1 : شما بانک رو روی هاست پیاده کردید یا روی یک سیستم روی شبکه خودتون ؟
2: آی پی استاتیک دارید یا نه ؟
سلام
من مشکلم حل شدم
از زحمات همگی تون ممنون.از راهنمایی ها همه استفاده کردم
من مشکلم حل شد.مشکلمن یک مشکل شبکه ای بود
با اینکه کامپیوترها همدیگر pingمی کردن اجازه دسترسی به هم نداشتند
من آمدم یک فایل share کردم از سرور بعد دیگه مشکلم حل شد
از a-azad تشکر می کنم چون وقتی مشکلش حل شد بی خیال نشد
این هم می تواند از وظایف ایجاد کنندگان تایپیک باشد
با سلام.
راستش با وجود قدیمی بودن تاپیک . ترجیح دادم سوالم رو هینجا بپرسم . چون دقیقا همینه :
از SqlServer2005 Express Edition استفاده میکنم .
به صورت sql server and windows و client/Server نصبش کردم .
راستش کارم خیلی گیره و تا 2 روز دیگه باید برنامه رو تحویل بدم .
Connection String مربوط به سرور رو به این صورت :
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=.\SqlExpress ; Initial Catalog=RailWay
و connection String مربوط به کلاینت رو به صورت زیر : (با توجه به اینکه نام سرور ServerName باشد)
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Data Source=ServerName\SqlExpress ; Initial Catalog=RailWay
البته این CN برای خود سرور هم جواب میده .
در کل در برقراری ارتباط در سرور مشکلی ندارم و اما از کلاینت .....
آیا لینکه میخوام بدون UserName و Pass از کلاینت بهش وصل بشم و با Persist Security Info=False باعث این اشتباهه . (که البته خودم این جور فکر نمیکنم )
در کل هر چی اینجا بود خوندم و فکر نمیکنم روش من با این روشها مقایر باشه :
لطفا راهنمایی کنید :
آیا روی سرور باید کا خواصی انجام بدم . یعنی چیزی رو باید Share کنم و ....
که البته تو این تاپیک از این چیزها کسی نگفته بود . که حتما چون لازم نیست .
شما هيچ وقت نمي توانيد از کلاينت ها به سرور به صورت windows authentication وصل شويد.
و هنگامي که مي خواهيد وصل شويد بايد بر روي سرور يک login تعربف کنيد که بتوانيد با آن login از کلاينت ها به سرور وصل شويد.
نمونه connection string که من دارم باهاش به صورت شبکه کار مي کنم برايت مي گذارم البته به شرط آنکه مابقي شرايط فراهم شده باشد (فايروال ، تنظيمات sqlserver و ...)
connection string SERVER
server=(local)\\SQLEXPRESS;database=MASTER;Integra ted Security=True;
connection string CLIENT
server=192.168.0.1\\SQLEXPRESS,1433;database=MASTE R;uid=sa;pwd=123456;
مشکلتان بايد 100% حل شود (چون من دارم با اين کانکشن ها کار مي کنم!)
موفق باشيد.
من Cs رو با استفاده از PromptDataSource ساختم .
رو سرور مشکل نداره باز هم .
اما رو کلاینت رو تب Connection وقتی میخوام Server رو وارد کنم نمیشه .
گفتم از ExpressEdition استفاده میکنم .
در حال نصب به Sa رمز دادم .
مشکل اصلی سر شناسایی Server هستش .
چه تنظیم خاصی باید مگه انجام بدم ؟
اون چیزهایی که تویه یکی از همین بخشها گفتین که اصلا تو SQlServer من نیست .
با اجازه دوستان . چرا دوست عزیز میشود . اگز شبکه شما به حالت دومین باشد نه workgroup میتونید به راحتی با اون روش وصل بشید.
اما در مورد مشکل دوستمون هم بگم متاسفانه من مشکل شما رو قبلا داشتم . هر کاری هم کردم در نهایت نتونستم وصل نشم و در نهایت شبکه رو به صورت دومین در آوردم و مشکل رفع شد .
نیاز به share کردن چیزی هم نیست . در ضمن در connection string های شما اثری از نام کاربری و کلمه عبور ندیدم . یعنی شما الان دارید به صورت احراز هویت ویندوزی کار میکنید . اونو به احراز هویت سرور تغییر بدید . اگر sql server شما interprise manager نداره باید از نسخه develeper اون استفاده کنید که داشته باشه !!!!!! من فقط یه سوال برای من پیش اومده که دوستان جه چیز sql server 2000 نداره که نیاز اونها رو برآورده نمی کنه که همه میرن سراغ 2005 ؟؟؟؟ در ضمن تنظیمات شبکه رو در sql server انجام بده . البته اگه به جای ado از sdoc استفاده میکردید این همه مشکل نداشتید !
میشه در موردش یه مقداری توضیح بدین ! تو ی یکی از پست های قبلی تون هم به این اشاره کردین .البته اگه به جای ado از sdoc استفاده میکردید این همه مشکل نداشتید !
فکر میکنم باید چی خوبی باشه .
لطفا بگید چه کار انجام کیده و چه مزیتی داره .
تو خود دلفی هست یا یه بسته جداست ؟
در ضمن روی اون شبکه ای که قراره نصب بشه فکر میکنم (به احتمال زیاد) Domain باشه . البته من الان دارم روی Work Group تستش می کنم .
تو عکسی که ضمیمه کردم ایا در زمان نصب باید همون جایی رو انتخاب کنم که تو عکس انتخاب شده .و اگر جواب مثبته کدام گزینه باید در کامبو باکش انتهاب بشه .
Local Service , Local System , Network Service
من خودم Network Service رو انتخاب میکنم .
زمانی که میخوام Surface Area Canfiguration رو باز کنم تا تنظیمات SqlServer رو برای کار در حالت شبکه انجام بدم خطا زیر رو مید ؟ (آیا این تنظیم باید انجام بشه ؟ چون هیچ کس در این باره چیزی نگفته بود)
از همگی عذر می خوام که هر 7 صفحه رو نخوندم ، ولی برای اتصال به sqlserver روی یک کامپیوتر دیگه ورژن sqlserver تون مهمه ،
از چه ورژن sqlserevr استفاده میکنید؟؟؟؟؟
منظورتون چيه ؟ بيشتر توضيح بديد ...
دوستان نمی خواستم که دوباره تاپیک یزنم گفتم همینجا بهتره حداقل یه تاپیک مرجع میشه .
SQL Server 2008 را روی سیستم نصب کردم و در قسمت Security یک user به نام a ساختم و اجاره همه کاری رو بهش دادم تنظیمات مربوط به SQL Server Configuration Manager را هم طبق پست یکی از دوستان انجام دادم و سپس از داخل یک VM دلفی 2010 را اجرا کردم و با Ping بین دوکامپیوتر (VM و کامپیوتر خودم) متوجه شدم که ارتباط برقرار است اما نمیدونم چرا هنگامی که میخواهم به SQL Server در دلفی 2010 از داخل VM وصل شوم این پیغام خطا را میده .
دوستان تصاویر خطا را ضمیمه میکنم که داخل VM یا همان کامپیوتر Host رخ داده
چرا دارید از ODBC استفاده می کنید؟ خب از همون درایور OLE DB مربوط به SQL Server استفاده کنید، که Perfomance بهتری هم داره.دوستان تصاویر خطا را ضمیمه میکنم که داخل VM یا همان کامپیوتر Host رخ داده
وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.
دوستان یعنی این مشکل حل شدنی نیست من که دیگه کلافه شدم
هر کاری می کنم با پیغام های متفاوت روبه رو می شوم ، Firewall را کلا Off کردم
دوستان آیا سیستم Server مشکل داره (منظورم سیستمی هست که SQL Server روی آن نصب است) یا آیا باید روی سیستم هاست نرم افزار خاصی از SQL Server نصب بشود ؟
من دلفي کار نکردم ، ولي اگر مشکل از تنظيمات sql server باشد ، يه سر به لينک های زير بزن، انشا الله که مشکل شما حل شود.
شايد هم مشکل در تنظيمات شبکه در VM باشد.
https://barnamenevis.org/showthread.php?t=142114
https://barnamenevis.org/showthread.php?t=149074
موفق باشيد.
سلام
در C# تنظیمات برای اتصال کلاینت به پایگاه داده سرور جه هست؟
ورودتون رو تبريك ميگم.
فرقي نداره . جفتشون بر اساس Connection String هستند .
در ضمن اينجا تالار دلفي هست . بهتره سوالات رو در بخش هاي مربوط به خودشون بپرسيد .
موفق باشيد.
درود
در هنگام نصب اس کیو ال 2000 در این قسمت گزینه دوم غیر فعال هست و در همان اولش هم یه ارور در رابطه با کلاینت و سرور ها میده
خواهشمندم سریع جواب بنده رو بدید ممنون
image016.jpg