deutschsprachige FoxPro User Group
Forum View
Home
  
  SQL Statement zu lang- #23734 in section [741220]
Sec: (1) Allgemeines
Von: Bernhard Sander
An: Harro Schippan
Am/Um: 20.04.2018 12:20:27 gelesen

Hallo Harro


 


Ich baue per Programm ein SQL-Statement zusammen,
was ich mit
&SQLStatement.
ausführe.
Der Insert geht auf eine lokale VFP-Datenbank.

Jetzt hat die Tabelle so viele Felder, daß ich die Meldung "Line too long" bekomme.
Da sind alles so Monster Feldnamen: "EmailCustomerOnWorkLoggedSpecificOnStopEmailTemplateId"

Was ist die maximale Länge für ein SQL-Statement?
Wie komme ich da raus ?????

Gruß Harro

************************************************************************
Insert into Customer(
Id ,
Name ,
SuppliedStoreId ,
......
) values(
CheckNull(loJsonObject.StringOf("value.Id")),
CheckNull(loJsonObject.StringOf("value.Name")),
CheckNull(loJsonObject.StringOf("value.SuppliedStoreId")),
.......
)
************************************************************************




Schreib die Werte vor dem Makro in Variablen und setze diese in das Makro ein:

v1=CheckNull(loJsonObject.StringOf("value.Id")),
v2=CheckNull(loJsonObject.StringOf("value.Name")),
v3=CheckNull(loJsonObject.StringOf("value.SuppliedStoreId")),

TEXT TO SQLStatement
Insert into Customer(
Id ,
Name ,
SuppliedStoreId ,
......
) values(
?v1,
?v2,
?v3,
.......
)
ENDTEXT

Ich kann's grad nicht testen, es die ? müssten auch bei lokalen SQL-Befehlen funktionieren. Evtl. reicht es, wenn nur die Variablen dort stehen.

Man kann Makros auch schachteln, dann muss man sich jedoch um die richtigen Gänsefüßchen kümmern:
(NB: bei geschachtelten Makros darf das Endprodukt auch nicht länger als 8K sein)
TEXT TO SQLStatement
Insert into Customer(
Id ,
Name ,
SuppliedStoreId ,
......
) values(
&v1,
"&v2",
&v3,
.......
)
ENDTEXT

Oder Du stopfst die Werte in ein Objekt und verwendest
INSERT INTO ... FROM NAME loObjekt
Aus dem Objekt werden nur die Eigenschaften verwendet, die genauso wie die Felder benannt sind. Wenn Eigenschaften fehlen werden die entsprechenden Felder mit Default-Werten gefüllt.

Gruß

Bernhard Sander




Harro Schippan   19.04.2018 13:16
Hans-Peter Grözinger  19.04.2018 14:14
Harro Schippan  19.04.2018 15:37
Hans-Peter Grözinger  19.04.2018 17:40
Harro Schippan  20.04.2018 10:04
Erich TODT  20.04.2018 15:11
Thomas Geissler  20.04.2018 11:46
Harro Schippan  20.04.2018 14:18
Bernhard Sander  20.04.2018 12:20
Harro Schippan  20.04.2018 14:23
Bernhard Sander  20.04.2018 15:42
Tom Knauf  20.04.2018 14:49
Ulf Neugebauer  23.04.2018 09:50
Harro Schippan  24.04.2018 16:54
  
zurück zum Forum