PDA

View Full Version : سوال: مشکل با فیلد آدرس



soft-c
جمعه 18 تیر 1389, 16:57 عصر
سلام.
من در دلفی با dbgrid و adotable و datasource به جدول بانک اطلاعاتی که در sql است وصل می شوم و با دستور insert اطلاعات کاربر را وارد پایگاه می کنم و از طریقکنترل هایی که در بالا گفته شد این تغییرات را به کاربر نشان می دهم .
ولی وقتی اطلاعات را insert می کنم در فیلد آدرس در grid عبارت [memo]نمایش داده می شود در صورتیکه در خود جدول sql آدرس به درستی نمایش داده می شود .
وقتی هم که می خواهم آدرس را update کنم این error را می دهد :
cannot access field 'adress' astype text.

vcldeveloper
جمعه 18 تیر 1389, 18:22 عصر
1- DBGrid دلفی به طور پیش فرض، امکان نمایش فیلدهای باینری رو نداره. درباره اینکه چطور میشه محتوای این فیلدها را نمایش داد، قبلا توضیح داده شده.

2- فیلد آدرس، اونقدر مقادیر بزرگی در خودش نگهداری نمیکنه که نیاز به فیلد Text داشته باشید، همون فیلد nvarchar برای کار شما کفایت میکنه.

3- برای مقداردهی به فیلدهای باینری، از طریق ارسال مستقیم دستور SQL، باید از پارامتر استفاده کنید، و مقدار فیلد را از طریق اون پارامتر (خصوصیت Parameters دیتاست مربوطه را ببینید) توسط دستور SQL مربوطه ارسال کنید.

soft-c
جمعه 18 تیر 1389, 18:56 عصر
سلام.
ولی فیلد من از نوع nvarchar است .
وقتی می خواهم update کنم یعنی یک مقدار جدید را جایگزین مقدار قبلی کنم (با dbedit و دستور update) این پیغام را می دهد .

vcldeveloper
جمعه 18 تیر 1389, 19:08 عصر
ولی فیلد من از نوع nvarchar است .
وقتی می خواهم update کنم یعنی یک مقدار جدید را جایگزین مقدار قبلی کنم (با dbedit و دستور update) این پیغام را می دهد .
نوع فیلدتون هنوز برای دلفی Text هست. اگر فیلدهای جدول را در دلفی اضافه کردید، یک بار فیلدها را حذف کنید، و مجددا در دلفی اضافه کنید. نوع فیلد شما در دلفی باید TWideStringField باشه، و در SQL Server به صورت nvarchar.

soft-c
جمعه 18 تیر 1389, 19:14 عصر
می شه لطف کنید بیشتر توضیح بدهید ؟
تشکر.

soft-c
جمعه 18 تیر 1389, 21:06 عصر
کسی نمی تونه این مشکل را حل کنه ؟

homayoun_sa
شنبه 19 تیر 1389, 00:51 صبح
اگه بتونی همون قسمت که مشکل داره رو فایل رو بذاری با دیتا بیس هات , حداقل می تونیم اون را توی سیستم خودمون انجام و Debug کنیم

ولی من خودم زیاد علاقه ای به کار با adotable ندارم و ترجیح می دهم همیشه ازadostoreproc, adoquery استفاده کنم.
تا حالا هم نشده که چیزی اضافه کنم و اضافه نشه , اونجوری تو چند خط query می نویسی و نوع دیتا هات هم نیازی نیست برای ازسال چک بشه و در آخر هم adoQuary که به گرید وصل است کافیه avtive=False
و مجدد true بشه
----
بازم اگه کد را گذاشتی به من پیغام بده من کدت را بر می دارم و امیدوارم که بتونم کمکی کرده باشم

soft-c
سه شنبه 22 تیر 1389, 10:57 صبح
سلام.
فکر نکنم مشکل خیلی بزرگی باشه که بخواهم دیتا بیس را اینجا بگذارم (البته تشکر می کنم ).
فقط مشکل در این است که وقتی فیلدها را insert می کنم در دیتا بیس آدرس به درستی نشان داده می شود ولی وقتی با grid , adotable می خواهم روی فرم جدول مورد نظر را نشان بدهم در فیلد آدرس به جای آدرس عبارت [memo] قرار داده می شود .
تشکر.

pezhvakco
سه شنبه 22 تیر 1389, 13:27 عصر
درود :

علی کشاورز (http://barnamenevis.org/forum/member.php?u=4729)
اگر فیلدهای جدول را در دلفی اضافه کردید، یک بار فیلدها را حذف کنید، و مجددا در دلفی اضافه کنید
این قسمت کار رو انجام دادی >
بر روی adotable دوبار کلیلک کن و ستون هایی رو که اضافه کردی پاک و دوباره اضافه کن تا تغییرات اعمال بشه .


در فیلد آدرس در grid عبارت [memo]نمایش داده می شود
در ستون های grid شما تغییری برای نمایش اطلاعات ندادی .


وقتی هم که می خواهم آدرس را update کنم این error را می دهد :
cannot access field 'adress' astype text
میشه دستور مربوط به اضافه کردن و ویرایش ستون آدرس رو این جا بزارین ...

فکر خوش.

soft-c
سه شنبه 22 تیر 1389, 17:52 عصر
سلام.
ببینید فقط مشکل به اینجا ختم نمیشه .
شما اگر یک adoquery بگذارید و آدرس را از جدول select کنید و جواب را داخل dbedit بریزید باز هم داخل dbedit عبارت [memo] قرار می گیرد ولی وقتی جواب را داخل edit می ریزید مشکلی پیدا نمی شود .
تشکر.

bootshow
پنج شنبه 24 تیر 1389, 17:03 عصر
شما حتما باید نوع فیلد آدرس را عوض کنید.الان فیلد آدرس شما از نوع memo هست که باید به nvarchar یا string (مثلا با سایز 100 )بزارید.البته با نوع memo هم میشه ولی مشکلاتی داره که کارتون یکمی سخت تر میشه