Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Limitation in SQL syntax ?
Message
 
 
À
09/12/2009 23:50:34
Hee Lim Wang
Fantasy Software Enterprise
Malaisie
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Divers
Thread ID:
01438325
Message ID:
01438363
Vues:
72
You're hitting VFP limit on the size of a string literal. It cannot exceed 256 bytes
You can use textmerge to work around the problem. It also will make your SQL statements readable and easier to maintain
TEXT TO lcSql TEXTMERGE NOSHOW PRETEXT 1+2+4+8
create TABLE  user
	(user char(20) not null, password char(20), supervisor char(1), outlet char(5),
	canc char(1), duty char(1), m1 char(1), m2 char(1), m3 char(1), m4 char(1), m5 char(1),
	m6 char(1), m7 char(1), m8 char(1), m9 char(1), m10 char(1), m11 char(1),
	m12 char(1), m13 char(1),
	m14 char(1), m15 char(1), m16 char(1),
	m17 char(1), m18 char(1), m19 char(1),
	m20 char(1),
	m21 char(1), m22 char(1), m23 char(1),
	m24 char(1), m25 char(1), m26 char(1),
	m27 char(1), m28 char(1),
	m29 char(1), m30 char(1),
	m31 char(1), m32 char(1), m33 char(1),
	m34 char(1), m35 char(1), m36 char(1),
	m37 char(1), m38 char(1),
	m39 char(1), m40 char(1))
ENDTEXT

lnResult = SQLExec(lnHandle,  lcSqL)
IF lnResult < 0
  * Error
ENDIF
>Is SQL insert or update command cannot save many fields in one statement with VFP9 ?
>
>example...
>
> SQLExec(lnHandle, "insert into member (ac,cardtype,name,add1,add2,add3,add4,ic,tel,joined,point,;
> expiry,suspend,canc) ;
> value (?m.ac,?m.cardtype,?m.name,?m.add1,?m.add2,?m.add3,?m.add4,?m.ic,?m.tel,?m.joined,?m.point,;
> ?m.expiry,?m.suspend,?m.canc)")
>this OK when saving the form
>
> SQLExec(lnHandle, "insert into member (ac,cardtype,name,add1,add2,add3,add4,ic,tel,joined,point,;
> expiry,suspend,canc,master_ac,dt,sync) ;
> value (?m.ac,?m.cardtype,?m.name,?m.add1,?m.add2,?m.add3,?m.add4,?m.ic,?m.tel,?m.joined,?m.point,;
> ?m.expiry,?m.suspend,?m.canc,?m.master_ac,?m.dt,?m.sync)")
>this got error with "Command contains unrecognized phrase/keyword (Cancel/Ignore/Ignore all)"
>
>
>Sometime I got error during runtime when create table or insert table with many fields in one statement
>In order to create or save the record have to split the statement.....
>
>* create table
>SQLExec(lnHandle, ;
> "create table if not exists user"+;
> "(user char(20) not null, password char(20), supervisor char(1), outlet char(5),;
> canc char(1), duty char(1), m1 char(1), m2 char(1), m3 char(1), m4 char(1), m5 char(1),;
> m6 char(1), m7 char(1), m8 char(1), m9 char(1), m10 char(1), m11 char(1))")
>SQLExec(lnHandle,"alter table user add column m12 char(1), add column m13 char(1),;
> add column m14 char(1), add column m15 char(1), add column m16 char(1),;
> add column m17 char(1), add column m18 char(1), add column m19 char(1), add column m20 char(1)")
>SQLExec(lnHandle,"alter table user add column m21 char(1), add column m22 char(1), add column m23 char(1),;
> add column m24 char(1), add column m25 char(1), add column m26 char(1)")
>SQLExec(lnHandle,"alter table user add column m27 char(1), add column m28 char(1),;
> add column m29 char(1), add column m30 char(1)")
>SQLExec(lnHandle,"alter table user add column m31 char(1), add column m32 char(1), add column m33 char(1),;
> add column m34 char(1), add column m35 char(1), add column m36 char(1)")
>SQLExec(lnHandle,"alter table user add column m37 char(1), add column m38 char(1),;
> add column m39 char(1), add column m40 char(1)")
>
>*insert record
>SQLExec(lnHandle, "insert into user (user, password, supervisor, duty,;
>M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12,M13,M14,M15,M16,M17,M18,M19,M20,M21,M22,M23,M24,M25,M26) values ;
>('TEST','123456','Y','Y','','','','','','','','','','','','','','','','','','','','','','','','','','')")
>SQLExec(lnHandle, "UPDATE user set M27='',M28='',M29='',M30='',M31='',M32='',M33='',M34='',M35='',M36='',M37='',M38='',M39='',M40='' where user='TEST'")
>
>why ???????
--sb--
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform