Statement : INSERT

Inserimento di uno o più record in sequenza e relazionati fra di loro.
Return : ‘first_id,last_id’. first_id=primo id inserito nella tabella, last_id=ultimo id inserito nella tabella.
Il ‘first_id’ equivale anche all’id_key che associa il blocco dei dati inseriti.
Se si invia un unico blocco <record></record> si intende un record singolo.
Se si inviano più blocchi <record></record> senza indicare il campo ‘col_idkey’ tutti i record sono associati sotto una unica id.

Tag permessi :

  • TemplateCode : codice del template da cui rilevare i dati. In presenza di TemplateCode il tag <stmt> non è preso in considerazione e tutti i campi in esso memorizzati saranno sovrascritti dai dati inviati.
  • Stmt : INSERT
  • Field : elenco dei campi separati da virgola (normalmente col_user, col_key, col_value e opzionalmente col_file)
  • ParamF : verosimilmente non saranno utili in questo caso in quanto ‘variabili’ saranno assegnati in fase di invio effettivo della stringa POST
  • Lang : non importante in fase di insert

Esempio unico blocco : con l’invio del blocco sottostante sarà inserito un unico record e sarà ritornato l’id della tabella che equivale anche all’id della key. Unica associazione.

<record>
	<stmt>insert</stmt>
	<field>col_user,col_key,col_value</field>
	<paramf>User X</paramf>
	<paramf>name</paramf>
	<paramf>Tom</paramf>
</record>

Esempio più blocchi associati sotto una unica ‘idkey’ creata in automatico : Con l’invio del blocco sottostante saranno inseriti 5 record tutti associati ad una unica ‘idkey’ creata in automatico.

<record>
	<stmt>insert</stmt>
	<field>col_user,col_key,col_value</field>
	<paramf>User X</paramf>
	<paramf>name</paramf>
	<paramf>Tom</paramf>
</record>
<record>
	<field>col_key,col_value</field>
	<paramf>city</paramf>
	<paramf>Rome</paramf>
</record>
<record>
	<field>col_key,col_value</field>
	<paramf>age</paramf>
	<paramf>32</paramf>
</record>
<record>
	<field>col_key, col_value</field>
	<paramf>birthday</paramf>
	<paramf>1993-04-30</paramf>
</record>
<record>
	<field>col_key,col_value,col_file</field>
	<paramf>photo</paramf>
	<paramf>photo_tom.jpg</paramf>
	<paramf>".stream_of_file."</paramf>
</record>

Esempio return : 101,105 dove 101 equivale anche alla id key che associa i 5 record.

col_idtablecol_usercol_idkeycol_keycol_value
101User X101nameTom
102User X101citySan Francisco
103User X101age32
104User X101birthday1993-04-30
105User X101photophoto_tom.jpg

Note :

  • il campo col_idkey è numerico
  • Non consigliato : l’idkey può essere anche inviato nel blocco, ma attenzione ad usare un valore numerico che non sarà mai utilizzato ovvero un numero così alto in modo che il massimo id della tabella non arriverà mai a quel valore. Per assegnare l’idkey manualmente si dovrà inserire ed assegnare sempre col_idkey in tutti i blocchi!
  • Tutte le col_value sono in formato testo. Sarà cura della applicazione ricevente trattarli in modo corretto oppure tramite le varie opzioni in Project->Fields e Project->FieldsLang formattarli in modo voluto.
  • Le key (nell’esempio : name, city, age…) sono key assegnate dalla applicazione chiamante, ma in fase di presentazione dati potranno avere ciascuna la descrizione appropriata in lingua (opzioni in Project->FieldsLang). Cioè l’intestazione della colonna con key=name potrà essere rappresentata in italiano con ‘Nome’, in inglese con ‘Name’, in rumeno con ‘Oras’, secondo le lingue impostate nel progetto!
  • Le date devono essere inserite come Year-Month-Day (YYYY-MM-DD ovvero 4 caratteri per l’anno, 2 per il mese e 2 per il giorno separati dal segno meno) per poter essere correttamente formattate.
  • I dati numerici devono essere inviati senza simbolo delle migliaia e se con decimali il simbolo deve essere il punto (1345 per gli interi oppure 12345.78 per i decimali).
  • Eseguendo una SELECT con WHERE col_idkey=101 saranno ritornati i 5 record