PDA

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



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

حمیدرضاصادقیان
پنج شنبه 30 مهر 1388, 23:52 عصر
سلام.اول شما نمونه کدی که دارید به بانک اضافه میکنید اینجا قرار بدید در ضمن نوع فیلدتون در دیتابیس چی هست؟بعد نمونه کدی که دارید اطلاعات رو در memo نمایش میدید اینجا قرار بدید.
موفق باشید

MohsenTi
جمعه 01 آبان 1388, 00:23 صبح
راه اول استفاده از DBMemo , DBRich که کارت رو ساده می کنه راه دوم اینه نوع فیلدت رو بلاب کنی و استریم استفاده کنی.
دلیل اینکه فقط خط اول میائ احتمالا بخاطر طول فیلد شماست

MOJTABAATEFEH
جمعه 01 آبان 1388, 09:45 صبح
دوست عزيز نوع فيلد مورد نظرت رو در ديتابيس Text قرار بده اين نوع فيلدها براي زماني بكار مي روند كه ما نمي دونيم كاربر چه تعداد حرف رو قراره وارد كنه مثل فيلد آدرس محل سكونت



موفق باشي
كد دلفي
http://www.mojtabaie.persianblog.ir

hadisalahi2
جمعه 01 آبان 1388, 12:16 عصر
البته بستگی داره با چه بانک اطلاعاتی کار کنی.
در Access نوع Memo وجود داره و میتونی از اون استفاده کنی.
در Sql Server هم میتونی از نوع Nvarchar استفاده کنی.

حمیدرضاصادقیان
جمعه 01 آبان 1388, 12:54 عصر
دوست عزیز شما وقتی داری text رو پیشنهاد میدی فکر بازدهی و کوئری هایی که باید نتیجه رو برگردونه کردی؟
شما میدونی varchar تا 5000 کارکتر ساپورت میکنه.شما هر ادرسی هم داشته باشی نیازی نیست بیش از 300 کارکتر داشته باشی. text بیشتر برای متون استفاده میشه مثلا برای صفحات کتاب. نه برای یک چمله 300 کارکتری.
موفق باشید.

pourya_lover
شنبه 02 آبان 1388, 18:56 عصر
با سلام خدمت دوستان عزیز
مرسی که توجه کردید راستش من با این کد


procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable1.Append;
ADOTable1['a']:=RichEdit1.Lines.Text;
ADOTable1.Post;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ADOTable1.Active:=false;
ADOTable1.Active:=true;
ADOTable1.Open;
ADOTable1.First;
begin
RichEdit1.Lines.Text:=ADOtable1.FieldValues['a'];
exit;
end;
end;

که یکی ثبت میکنه و یکی بر میگردونه کارم رو راه انداختم حالا یه کمک می خوام اینه که من توی کل پروژه ام از کوئری استفاده کردم حالا چطوری این کد های بالا رو به کوئری تبدیل کنم ممنون میشم کمک کنید
و اینکه من آخرش از text استفاده کنم یا nvarchar البته تا حالا با varchar مشکل برام پیش نیومده ولی با text در کوئری خیلی مشکل داشتم در هر حال کدوم بهتره ممنون میشم کمک کنید بازم مرسی

MohsenTi
یک شنبه 03 آبان 1388, 08:30 صبح
برای کوئری از دستور Select * from mytable استفاده کن همون فیلدی که در تیبل هست رو از هر نوعی که باشه بر می گردونه اگه می خوای شرطی هم بزاری از Where استفاده کن .
نکته ی دوم اینکه یا اکتیو ایدیو را True کن یا ایدیو رو اپن کن به هر دو نیاز نیست فقط سرعت برنامه پایین میاد چون

procedure TAdotable.Open();
begin
Active:=True;
end;

کد دستور اپن ایدیو است

hadisalahi2
یک شنبه 03 آبان 1388, 09:06 صبح
توصیه میکتم برای آشنایی با نحوه کار دستورات SQL ، از آموزهای فروانی که در اینترنت وجود دارد استفاده کنید.
برای آشنایی به کار آن در دلفی هم میتونید کلمه Query رو در سایت جستجو کنید.

pourya_lover
دوشنبه 04 آبان 1388, 01:03 صبح
سلام
داش محسن من استفاده از کوئری رو بلدم
حالا با این کد


begin
b.SQL.Clear;
b.Close;
b.SQL.add('insert into a(a) values('''+memo1.Lines.Text+''');');
b.Open;
end;
با این کوئری در بانک ذخیره میشه ولی یه خطا میده که میگه
command text dose not return a result set
حالا اگه دوستان کمک کنن ممنون میشم

hadisalahi2
دوشنبه 04 آبان 1388, 08:35 صبح
برای کار با دستوراتی به غیر از دستور Select باید از متد ExecSQL استفاده کنید.
در ضمن بهتره از پارامتر برای مقدار دهی به فیلدهاتون استفاده کنید.
یا حق

pourya_lover
دوشنبه 04 آبان 1388, 14:44 عصر
سلام
آخه من در این فرمم که می خوام این مشکل حل شه فقط یه ممو نداره 4تا ممو و نزدیک به 22 تا edit که بخوام همه اینارو با پارامتر بنویسم خیلی طولانی میشه و اینکه با select در بانک ثبت میکنه یعنی وقتی دکمه رو میزنم اطلاعات ممو رو وارد بانک میکنه ولی خطاییم که در پست قبلی گذاشتم میاره مشکل من با اون خطا هستش نه با ثبت اطلاعات بازم ممنون که توجه میکنید

hadisalahi2
دوشنبه 04 آبان 1388, 17:20 عصر
خوب اتصال رشته ها که خیلی مشکل تره؟
شما روشی بهتر از تعریف پارمتر سراغ دارید؟

gheidari
سه شنبه 22 دی 1388, 19:25 عصر
اگر می خواهی اطلاعات memo به صورت چند خطی در بانک اطلاعاتی sql ذخیره شود باید نوه داده image را انتخاب کنی من هم همین مشکل را داشتم یی از دوستان من را راهنمایی کرد و کارم را راه انداخت.