PDA

View Full Version : String literals may have at most 255 elements



tikzahraaran
دوشنبه 02 دی 1387, 22:44 عصر
با سلام خدمت دوستان گرامي
من دربرنامه ام مي خواهم بعضي از اطلاعات يك تيبل را در درون يك تيبل ديگر كپي كنم ولي با پيام زير مواجه مي شود

String literals may have at most 255 elements
لطفا به من بگين چكار كنم
با تشكر

accpascal
دوشنبه 02 دی 1387, 22:53 عصر
توضیحاتتان کافی نیست لطفا بگویید Table شما از چه نوعی می باشد و چگونه کپی می کنید

tikzahraaran
سه شنبه 03 دی 1387, 00:16 صبح
من از اس كيو ال براي بانك اطلاعاتي ام استفاده مي كنم و در دلفي دستور زير را براي عمليات كپي استفاده كرده ام


Dconnection.ADOQuery1.Close;
Dconnection.ADOQuery1.SQL.Clear;
Dconnection.ADOQuery1.SQL.Add('insert into articldaeem(codemoeen,sharhemoeen,codetafzili,shar hetafzil,sharh,bedehkar,bestankar,tafzil,tanzimkon andeh)select codemoeen,sharhemoeen,codetafzili,sharhetafzil,sha rh,bedehkar,bestankar,tafzil,tanzimkonandeh from movaghat where shomaresanad=:shomaresanad');
Dconnection.ADOQuery1.Parameters.ParamValues['shomaresanad']:=DSmovaghat.DataSource2.DataSet.Fields[0].Value;
Dconnection.ADOQuery1.ExecSQL;

shervin farzin
سه شنبه 03 دی 1387, 00:28 صبح
سلام
مشكل از خط سوم كدي هست كه نوشتيد . هر خط در محيط دلفي ميتونه حداكثر
255 كاركتر داشته باشه ولي خط سوم بيشتر از 255 كاركتر داره .
فقط كافيه اون خط رو بشكنيد به چند خط كوچكتر مثل كد زير :

Dconnection.ADOQuery1.SQL.Add('insert into articldaeem(codemoeen,sharhemoeen,codetafzili,shar hetafzil,sharh,'+
'bedehkar,bestankar,tafzil,tanzimkonandeh)select codemoeen,sharhemoeen,codetafzili,'+
'sharhetafzil,sharh,bedehkar,bestankar,tafzil,tanz imkonandeh from movaghat'+
' where shomaresanad=:shomaresanad');

موفق باشيد

merced
سه شنبه 03 دی 1387, 10:54 صبح
هر خط در محيط دلفي ميتونه حداكثر
255 كاركتر داشته باشه


هر خط در محيط دلفي ميتونه تا 1024 كاراكتر باشه ..
نوع string (كه متن داخل كوتيشن رو هم شامل ميشه) نميتونه از 255 كاراكتر بيشتر باشه

vcldeveloper
سه شنبه 03 دی 1387, 17:50 عصر
نوع string (كه متن داخل كوتيشن رو هم شامل ميشه) نميتونه از 255 كاراكتر بيشتر باشه
تنها محدودتی نوع string از نظر اندازه داره، حافظه ایی هست که در اختیار Process قرار داره؛ یعنی بطور تئوری 2 تا 3 گیگابایت!

اون محدودتی که شما بهش اشاره کردید، مربوط به نوع داده ShortString میشه که از پاسکال به دلفی اومده و از با نوع داده string دلفی فرق میکنه. در پیام خطایی هم که این کاربر دریافت کردند، اشاره به ثابت رشته ایی شده. ایشون می تونند همانطور که در پست شماره 4 جواب داده شد، کل متن را به چند ثابت رشته ایی که با استفاده از + به هم وصل شده اند، تقسیم کنند. البته وجود همچنین خطایی به خودی خود عجیب هست، چون دلفی ثابت های رشته ایی را بصورت string تعریف می کند، نه shortstring.

همچنین، این مشکل در نسخه های جدیدتر دلفی مثل دلفی 2009 وجود ندارد.