ورود

نسخه کامل مشاهده نسخه کامل : مشکل در کار با memo و ذخیره آن در بانک



pourya_lover
22-10-2009, 19:59
سلام
اساتید محترم به کمکتون محتاجم
من میخوام یه متن را که در memo یا richedit هر کدام که باشه در بانک sql 2000 ذخیره کنم واسه ذخیره مشکلی ندارم مشکلم اینجاست که تمام خطهای نوشته ام را هر کدام در یه سلول فیلدم قرار میده که من میخوام مثل edit در یه سلول باشه تمام متنم چون در هنگام برگشتش یعنی انتقال اطلاعات memo از بانک به نرم افزار فقط خط اول یا متن اولین سلول به نرم افزار میاد حالا یه راه حلی جلو پام بذارید مهم نحوهی ذخیره اش در بانک نیست فقط جوری حل شه مشکل ممنون میشم گشتم راه حلش نبود تو سایت بدجور گرفتارم مرسی فقط اگه امکان داره یه راه حل با مثال یه با کد نمونه باشه ممنون میشم

مرد مباح
22-10-2009, 23:06
دوست عزیز. چرا از DBMemo استفاده نمیکنی؟

از چه کدی برای انتقال اطلاعات از Memo به فیلدت استفاده میکنی؟

pourya_lover
24-10-2009, 19:32
سلام مرد مباح عزیز استاد بزرگوار
مرسی که همیشه اولی
dbmemo رو کجا باید پیدا کرد
من از کد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که یکی وارد میکنه یکی بر میگردونه استفاده کردم که کار میکنه حالا کوئری این دستور چی میشه با کوئری نتونستم درستش کنم اگه مشه کمک کنی ممنونم
بازم مرسی

مرد مباح
25-10-2009, 20:03
توی تب DB access یک کامپوننت با این نام هست و میتوی از اون استفاده کنی و کارت راحت حل میشه.
من تا حالا این کارو با کد نکردم ولی به نظرم چندتا مشکل توی کدت هست.

به هر حال به کد نیازی نداری.

pourya_lover
26-10-2009, 01:35
سلام
داداش
حالا با این کد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید با این کوئری در بانک ذخیره میشه ولی یه خطا میده که میگه
command text dose not return a result set
در ضمن من از دلفی 7 استفاده می کنم هر چقدر توی تب هاش گشتم این تبی که گفتین رو پیدا نکردم
توی پکیج هاشم گشتم نبود
مرسی بازم
مشکل این خطا چیه

مرد مباح
26-10-2009, 17:32
1. من هم از دلفی 7 استقاده میکنم. تا جایی که یادم میاد اسم دقیقش DataAccess هست و اسم کامپوننت هم DBMemo.
امکان نداره نباشه. چون به صورت پیش فرض با خود دلفی نصب میشه. ولی اگه بازم پیداش نکردی حتما دلفی رو دوباره اینستال کم.
خیلی کارهاتو توی کار با دیتابیس راحت میکنه.

2. ننوشتی که B از چه نوع کامپوننتی هست. ولی از Errorی که میبینم میتونم حدث بزنم که ADOQuery هستش. برای این کار از ADOCommand توی خود تب ADO استفاده کن تا مشکلت حل بشه و ارر نده.

F A R H A D
26-10-2009, 19:36
سلام. در مورد پیغام خطا حق با مرد مباح عزیز هست. ضمن اینکه اگر اصرار به استفاده از adoQuery دارید به جای متد Open باید از ExecSql استفاده کنید

pourya_lover
29-10-2009, 11:58
با سلام
و تشکر از توجه تون
راستش مر مباح عزیز من با adocommand تا حالا کار نکردم نمیدونم نحوه کار باهاش چه جوری
ولی مشکلم رو با همون کوئری حل کردم و نوشتم من یه جدول ثبت سند دارم که برای 4 قسمتش از ممو استفاده میکنم تمام ایرادای که داشت رو گرفتم کد من اینه

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من این کد رو واسه تمام جدول هام به کار بردم هیچ کدام مشکلی نداشته غیر این یکی که چون از ممو استفاده کردم و ناچارم استفاده بکنم گیر کردم
که حالا ایرادی گرفت که مغز من نکشید که از کجاست اررش اینه
string or binary data would be truncated
نمیدونم مشکلش از کجاست اگه راهنمایی کنید ممنونم
از دوست عزیز فرهاد جون نیز ممنون

مرد مباح
29-10-2009, 20:45
دوست عزیز. من واقعا نمیدونم چرا اینقدر قضیه رو سخت میکنی. وافعا دلیلی داره که از DBMemo استفاده نمیکنی؟
من قبلا هم عرض کردم که خودم تا حالا با کد اطلاعات توی Memo نریختم پس نمیتونم کمک خوبی باشم ولی خود دلفی برای این کار کامپوننت داره و استفاده از اون منطقیه.
چیز دیگه ای هم در این مورد نمیدونم که بتونم بیشتر کمکتون کنم.

pourya_lover
01-11-2009, 20:13
سلام دادش مباح
من طبق گفته شما عمل کردم و به جای ممو از dbmemo استفاده کردم با این کد

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدحالا ایراد بر طرف شده یعنی ارر نمیگیره ولی در پایگاه داده اطلاعاتی رو که توی dbmemo دارم داخل بانکم ذخیره نمیکنه فیلدای داخل بانک خالیه
من با همون ممو بالاخره فهمیدم مشکلش از کجاست مشکلش اینه که مثلا من داخل ممو تایپ میکنم پوریا رستمی ذخیره میکنه ولی وقتی فاصله بین پوریا و رستمی زیاد میشه یعنی میشه پوریا رستمی اون ارر رو میگیره که البته این مشکل با تایپ انگلیسی وجود نداره با تایپ فارسی مشکل داره به دادم برسید

pourya_lover
02-11-2009, 02:24
با تشکر
بالاخره هر جوری بود مشکلم رو حل کردم با همون ممو بازم مرسی

pourya_lover
28-01-2010, 02:09
با سلام خدمت دوستان عزیز
من یه سوال داشتم با یه مثال توضیح میدم
من یه ممو دارم که نوشته ی داخل یک edit رو هر بار با زدن دکمه ای میندازم تو ممو حالا سوال من اینه که من میخوام وقتی نوشته ی اول رو وارد ممو کردم نوشته ی دوم در همون خط در ادامه ی نوشته ی اولیم باشه یعنی بعد از وارد شدن بره بعد از نوشته ای که اول وارد کردم قرار بگیره ممنون میشم که بگید چطوری این کار رو بکنم
من از این کد برای وارد کردن نوشته ی edit ام استفاده می کنم ولی وقتی نوشته ی دوم رو وارد میکنم میره در خط دوم ممو قرار میگیره

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

F A R H A D
28-01-2010, 15:50
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

pourya_lover
29-01-2010, 01:52
با تشکر داش فرهاد
یه سوال دیگه اگه مموی ما خودش به صورت پیش فرض یک مقداری داخلش باشه بعد که مقدار edit رو وارد میکنیم مقدار اون رو در خط دوم وارد میکنه یعنی اگه خود ممو حاوی مقداری باشه بعد که برنامه رو اجرا میکنیم مکان نما خودش به خط دوم میره اگه بخوایم همون خط اول بره باید چیکار کنیم
بازم مرسی از جواب سریعت خیلی سالاری

F A R H A D
29-01-2010, 03:08
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

pourya_lover
29-01-2010, 18:08
داش فرهاد خیلی سالاری به خدا ممنون
اگه یه توضیح کوچیک راجب به این trim بدی که چیه و کارش چیه ممنون میشم
بازم مرسی سالار

F A R H A D
29-01-2010, 20:09
توضیح help دلفی کامل تر از توضیحی هست که من میتونم بدم:


Trims leading and trailing spaces and control characters from a string.

Unit

SysUtils

Category

string handling routines

Delphi syntax:

function Trim(const S: string): string; overload;

function Trim(const S: WideString): WideString; overload;

C++ syntax:

extern PACKAGE AnsiString __fastcall Trim(const AnsiString S);

extern PACKAGE WideString __fastcall Trim(const WideString S);

Description

Trim removes leading and trailing spaces and control characters from the given string S.
شاد باشید

pourya_lover
01-02-2010, 13:11
با سلام
اگه من بخوام با تیک زدن یه چک باکس وارد ممو بشم چطوری باید این کارو بکنم البته بدون دستور setfocus یعنی اینکه وقتی چک باکس رو زدم وارد ممو بشه و وقتی غیر فعالش کردم از ممو خارج بشه ممنون میشم جواب بدین

M.Hashemi
02-02-2010, 15:36
با سلام
فکر کنم اگر کد زیر را در رویداد click ان checkbox بنویسید جواب دهد :

if checkbox1.checked then

ActiveControl:=Memo1
else
ActiveControl:=checkbox1;

البته اگر بگردید کدهای بهتری پیدا میکنید.
با تشکر

pourya_lover
02-02-2010, 20:37
با تشکر از M.Hashemi
ولی این کد مشکل من رو حل نکرد یه توضیح بیشتر بدم
مشکل من اینه که من داخل ممو یه مقداری دارم مثلا نوشتم سلام مموی من enable ش false وقتی که روی چک باکس کلیک میکنم enable رو برام true میکنه و وارد ممو میشه و باید بعد از نوشته یداخل ممو مکان نما قرار بگیره که قبلا داش فرهاد کدی رو به من داد که اونم امتحان کردم جواب نداد کدای داخل چک باکس من اینه

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدl
که با دستور setfocus وارد ممو که میشه دیگه نمیگذاره که چک باکس رو غیر فعال کنم
ممنون میشم کمک کنید

pourya_lover
07-02-2010, 00:49
یعنی هیچ راه حلی نداره این سوال
فقط با setfocus باید وارد شد؟

M.Hashemi
07-02-2010, 10:40
با سلام
اگر به جای دستور setfocus از دستور ActiveControl استفاده بکنید مشکلی نخواهید داشت
کد زیر را در رویداد click چک باکس بنویسید.

if CheckBox1.Checked then
begin
Memo1.Enabled:=true;
ActiveControl:=memo1;
end
else
memo1.Enabled:=false;
end;

این کد را در دلفی 2010 امتحان کردم کار کرد.
با تشکر

Hadi.fayyaz
20-02-2010, 13:37
سلام دوست عزيز
براي حل اين مشكلي كه داري فرقي نميكنه از DBMemo استفاده كني يا از Memo ولي به جاي Memo1.Lines.Text يا DBMemo.Lines.Text بنويس Memo.text يا DBMemo.Text
اما اگه من به جاي شما باشم به جاي اينهمه كد SQL نوشتن توي دلفي كه با توجه به نياز به كوتيشن گذاري كار سختي هم هست از Stored Procedur هاي SQLServer استفاده ميكردم
تو اين زمينه اگه مايل بودي بگو تا برات توضيح كامل تر همراه با مثال برات بگذارم
موفق باشي.

pourya_lover
28-02-2010, 03:05
سلام خسته نباشی مرسی از اینکه توجه کردی ممنون میشم یه توضیح بدی