View Full Version : خطای دستوری در ثبت فیلد ممو
khoshblagh
دوشنبه 25 آبان 1388, 10:23 صبح
با سلام خدمت دوستان
من با عبارت زیر میخواهم اطلاعات را به بانک اکسس منتقل نمایم. تا قبل از فیلد ممو هیچ مشکلی در کار نبود . ولی حالا که فیلد ممو را اضافه نمودم خطای دستوری صادر میگردد.در صورت امکان خطای این کد را بیان نمایید. متشکرم
cmdSave.CommandText:='UPDATE tblContact SET FName='+QuotedStr(edtFName.Text)+',Note='+QuotedSt r(mmoNote.Lines.Text)+
' WHERE ID='+IntToStr(intIdRecord);
حسین شهریاری
دوشنبه 25 آبان 1388, 10:33 صبح
سلام
اینطوری که من دیدم شما دارید همه فیلدهاتون را توی Update دخالت میدید.
آیا اونا همشون تغییر کردند یا اینکه تعدادی از اونا تغییر کردند که شما Update را صدازدید؟
اگه حالت دوم هستش فقط در دستور Update نام فیلدهایی که میخاین تغییر کنند را قرار بدید.
بیشتر توضیح بدید....
hadisalahi2
دوشنبه 25 آبان 1388, 10:42 صبح
اگه میشه پیغام خطا رو اینجا بنویسید
khoshblagh
دوشنبه 25 آبان 1388, 10:57 صبح
اگه میشه پیغام خطا رو اینجا بنویسید
syntax error in update statement.
MOJTABAATEFEH
دوشنبه 25 آبان 1388, 10:58 صبح
دوست عزيز احتمال به زياد مشكل شما مربوط به نوع فيلد شما و اندازه آن بر مي گردد شما براي اينگونه فيلدها و كلا فيلدهايي كه ميزان كاراكتر ورودي كاربر را نمي دانيد در ديتابيس خودتان اگر sql هست text و اگر اكسس هست memo در نظر بگيريد
موفق باشيد
كد دلفي
www.mojtabaie.persianblog.ir
khoshblagh
دوشنبه 25 آبان 1388, 11:00 صبح
سلام
اینطوری که من دیدم شما دارید همه فیلدهاتون را توی Update دخالت میدید.
آیا اونا همشون تغییر کردند یا اینکه تعدادی از اونا تغییر کردند که شما Update را صدازدید؟
اگه حالت دوم هستش فقط در دستور Update نام فیلدهایی که میخاین تغییر کنند را قرار بدید.
بیشتر توضیح بدید....
به هر حال تا قبل از اضافه کردن ممو فیلدها Update میشدند و به نظر من تغییر همه و یا بعضی از فیلدها مانع Update شدن بانک نمیشد.
khoshblagh
دوشنبه 25 آبان 1388, 11:03 صبح
دوست عزيز احتمال به زياد مشكل شما مربوط به نوع فيلد شما و اندازه آن بر مي گردد شما براي اينگونه فيلدها و كلا فيلدهايي كه ميزان كاراكتر ورودي كاربر را نمي دانيد در ديتابيس خودتان اگر sql هست text و اگر اكسس هست memo در نظر بگيريد
موفق باشيد
كد دلفي
www.mojtabaie.persianblog.ir (http://www.mojtabaie.persianblog.ir)
بانک من اکسس و نوع فیلد را هم memo انتخاب نموده ام .
حسین شهریاری
دوشنبه 25 آبان 1388, 11:14 صبح
جناب khoshblagh چیزی که از پیغام خطای مذکور مشخصه این هستش که احتمالا دستور شما به لحاظ سینتکسی ایراد داره.خوب طبیعی هم هست سر هم کردن این همه رشته برای ساختن دستور امکان داره
یه قسمتی هم به لحاظ شکل دستوری اشتباه بشه.پیشنهاد میکنم قبل از اینکه متد ExecSql را بکار ببرید
قبلش خاصیت Text مربوط به کوئری را مشاهده کنید و با دقت ببینید آیا دستورتون درسته؟یه وقه یه کامایی
چیزی جا ننداخته باشید.
showmessage(adoquery1.sql.text)
khoshblagh
دوشنبه 25 آبان 1388, 11:35 صبح
جناب khoshblagh چیزی که از پیغام خطای مذکور مشخصه این هستش که احتمالا دستور شما به لحاظ سینتکسی ایراد داره.خوب طبیعی هم هست سر هم کردن این همه رشته برای ساختن دستور امکان داره
یه قسمتی هم به لحاظ شکل دستوری اشتباه بشه.پیشنهاد میکنم قبل از اینکه متد ExecSql را بکار ببرید
قبلش خاصیت Text مربوط به کوئری را مشاهده کنید و با دقت ببینید آیا دستورتون درسته؟یه وقه یه کامایی
چیزی جا ننداخته باشید.
showmessage(adoquery1.sql.text)
دوست عزیز با دستور فوق اطلاعات تمام فیلدها نمایش داده میشود ضمنا همانطور که قبلا گفتم با اضافه کردن فیلد ممو این مشکل بوجود آمد.
khoshblagh
چهارشنبه 27 آبان 1388, 07:53 صبح
واقعا با وجود اساتید محترم حل نشدن این تاپیک تعجب آور است !!!!
zidane
چهارشنبه 27 آبان 1388, 08:08 صبح
احتمالا توي متني که داخل ممو هست علامت ' وجود داره.
دستور خودتون رو با پارامتر به بانک بفرستيد.
cmdSave.CommandText:='UPDATE tblContact SET FName='+QuotedStr(edtFName.Text)
+',Note=:pr1 WHERE ID='+IntToStr(intIdRecord);
cmdSave.Parameters.ParamByName('pr1').Value:=mmoNo te.Lines.Text;
khoshblagh
چهارشنبه 27 آبان 1388, 10:53 صبح
احتمالا توي متني که داخل ممو هست علامت ' وجود داره.
دستور خودتون رو با پارامتر به بانک بفرستيد.
cmdSave.CommandText:='UPDATE tblContact SET FName='+QuotedStr(edtFName.Text)
+',Note=:pr1 WHERE ID='+IntToStr(intIdRecord);
cmdSave.Parameters.ParamByName('pr1').Value:=mmoNo te.Lines.Text;
با تشکر از پاسختان خطای پیدا نشدن پارامتر pr1 اعلام میگردد. احتمالا عبارت شما اشکالی دارد.
cmdSave:parameter 'pr1' not found.
zidane
چهارشنبه 27 آبان 1388, 19:52 عصر
من این مثال رو برای ADO Query تست کردمو جواب داده. مطمئن بشید که قبل از پست کردن Query ، پارامتر ها رو مشخص کرده باشید. روش کلی ذخیره ممو به همین صورت هست.
khoshblagh
شنبه 30 آبان 1388, 06:47 صبح
من این مثال رو برای ADO Query تست کردمو جواب داده. مطمئن بشید که قبل از پست کردن Query ، پارامتر ها رو مشخص کرده باشید. روش کلی ذخیره ممو به همین صورت هست.
متوجه منظورتون نشدم ! آیا باید کار خاصی را انجام بدهم؟
دلفــي
شنبه 30 آبان 1388, 08:15 صبح
با سلام خدمت دوستان
من با عبارت زیر میخواهم اطلاعات را به بانک اکسس منتقل نمایم. تا قبل از فیلد ممو هیچ مشکلی در کار نبود . ولی حالا که فیلد ممو را اضافه نمودم خطای دستوری صادر میگردد.در صورت امکان خطای این کد را بیان نمایید. متشکرم
cmdSave.CommandText:='UPDATE tblContact SET FName='+QuotedStr(edtFName.Text)+',Note='+QuotedSt r(mmoNote.Lines.Text)+
' WHERE ID='+IntToStr(intIdRecord);
دستور SQL شما موردی نداره ، مشکل شما در نام گذاری فیلدهای جدول است !
چون شما از کلمه اختصاصی خود Access برای نامگذاری فیلد Memo استفاده کردید این خطا رو دریافت می کنید
به جای نام Note از یه نام دیگه مثل Sharh برای نام فیلد Memo استفاده کنید مشکلتون حل میشه !
khoshblagh
یک شنبه 01 آذر 1388, 08:22 صبح
دستور SQL شما موردی نداره ، مشکل شما در نام گذاری فیلدهای جدول است !
چون شما از کلمه اختصاصی خود Access برای نامگذاری فیلد Memo استفاده کردید این خطا رو دریافت می کنید
به جای نام Note از یه نام دیگه مثل Sharh برای نام فیلد Memo استفاده کنید مشکلتون حل میشه !
ضمن تشکر از راهنمایی مفیدتان .من جایی ندیدم که کلمه Note جزو کلمات کلیدی اکسس باشد. به هر حال از شما به خاطر حل مشکل تشکر میکنم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.