PDA

View Full Version : مشکل این کد چیست؟



khoshblagh
شنبه 18 مهر 1388, 09:17 صبح
با سلام خدمت دوستان
من میخواهم با دستور زیر اطلاعات یک کامبوباکس را به جدول اکسس بفرستم ولی خطای
دستور میگیرد. به نظر شما علت خطا دستوری چیست؟متشکرم






var
strLevel:string[1];
begin
strLevel:=inttostr((cobLevel.ItemIndex)+1);
cmdSave.CommandText:='INSERT INTO tblCodHesab(cod,Name,Level) values('
+quotedstr(edtCod.text)+','+quotedstr(edtName.text )+','+strLevel+')';

mafazel
شنبه 18 مهر 1388, 13:00 عصر
قاعدتا فیلد Cod عددی است اما شما بصورت متن (با Quotedstr )استفاده کردید.
ضمنا بعضا فیلد Code شناسه AutoIncrement است و نباید در Insert اونو مقدار بدید.

Mahmood_M
شنبه 18 مهر 1388, 13:53 عصر
باید StrLevel رو هم به وسیله ی QuotedStr در دستور وارد کنید ...
دستور QuotedStr وظیفش قرار دادن متن در دابل کوتیشن ( " ) هست ...

موفق باشید ...

khoshblagh
شنبه 18 مهر 1388, 13:58 عصر
قاعدتا فیلد Cod عددی است اما شما بصورت متن (با Quotedstr )استفاده کردید.
ضمنا بعضا فیلد Code شناسه AutoIncrement است و نباید در Insert اونو مقدار بدید.
با تشکر از پاسختان
درحقیقت من با دو فیلد اول مشکل ندارم . بلکه مشکل در فیلد سوم Level میباشد که در حقیقت یک کامبو باکس میباشد که تا حالا نتونستم اطلاعات آن را به بانک منتقل نمایم.

Mahmood_M
شنبه 18 مهر 1388, 21:16 عصر
مشکل کدی که نوشتید همون هست که گفتم ، آیا بررسی کردید ؟

...

khoshblagh
یک شنبه 19 مهر 1388, 08:37 صبح
مشکل کدی که نوشتید همون هست که گفتم ، آیا بررسی کردید ؟

...
با سلام خدمت شما
من کد را بر اساس گفته شما به شکل زیر اصلاح نمودم ولی مشکل حل نشد. متشکرم


cmdSave.CommandText:='INSERT INTO tblCodHesab(cod,Name,Level) values('




+quotedstr(edtCod.text)+','+quotedstr(edtName.text )+','+quotedstr(strLevel)+')';

Mahmood_M
یک شنبه 19 مهر 1388, 17:02 عصر
درحقیقت من با دو فیلد اول مشکل ندارم . بلکه مشکل در فیلد سوم Level میباشد که در حقیقت یک کامبو باکس میباشد که تا حالا نتونستم اطلاعات آن را به بانک منتقل نمایم.
پیغام خطا برای دستور SQL نمایش داده میشه یا اینکه اطلاعات وارد نمیشه در بانک ؟
اگر پیغام خاصی نمایش داده میشه ، لطفا پیغام رو اینجا بزارید ...

لطفا کدهایی که مینویسید رو در داخل تگک کد بزارید تا بهتر دیده بشه ، مخصوصا این دستورات ( SQL ) که با اندکی جابه جایی در رشته می تونه خطا ایجاد کنه ...

موفق باشید ...

khoshblagh
دوشنبه 20 مهر 1388, 08:41 صبح
پیغام خطا برای دستور SQL نمایش داده میشه یا اینکه اطلاعات وارد نمیشه در بانک ؟
اگر پیغام خاصی نمایش داده میشه ، لطفا پیغام رو اینجا بزارید ...
..
با سلام خدمت شما
پیام خطا برای دستورSQL نمایش داده میشه و بشرح زیر است. متشکرم



sysntax error in insert into statement

و خود کد:


cmdSave.CommandText:='INSERT INTO tblCodHesab(cod,Name,Level) values('
+quotedstr(edtCod.text)+','+quotedstr(edtName.text )+','+quotedstr(strLevel)+')';

حسین شهریاری
سه شنبه 21 مهر 1388, 10:46 صبح
سلام


همیشه قبل از اجرای دستور ExecSql ابتدا خاصیت Text مربوط به Query را با Showmessageمشاهدهکنین :
showmessage(query.sql.text)

اگه دستور Sql سالم بود(از دید سینتکسی) بعد اونا ExecSql کنین