Categorie
cScript DataBase Esempi WinCC

Utilizzare “INSERT INTO” con cScript

L’esempio mostra come inserire un nuovo record in una tabella di SQL Server utilizzando il comando SQL “INSERT INTO” in linguaggio cScript

#include “apdefap.h”

int dbInsertInto(char *szTable,char *szCampi,char *szValori)
{
#define GetObject GetObject
__object *objConnection=NULL;
__object *objRst=NULL;

char strConnectionString[NC];
char strSQL[NC];
int NewID;

printf(“dbInsertInto(%s,%s,%s)\r\n”,szTable,szCampi,szValori);

//connessione a database e query
sprintf(strConnectionString,”DRIVER=SQL Server;”
“UID=SYSTEM;”
“Trusted_Connection=Yes;”
“DATABASE=%sR;”
“WSID=%s;”
“SERVER=%s\\WINCC;”,
GetTagChar(“@ProjectDSN”),
GetTagChar(“@ServerName”),
GetTagChar(“@ServerName”));

if(!GetTagBit(“@IsServerPc”))
strcat(strConnectionString,”LINKS=TCPIP;”);

objConnection = __object_create(“ADODB.Connection”);
objConnection->ConnectionString = strConnectionString ;
objConnection->Open;

objRst = __object_create(“ADODB.Recordset”);
objRst->CursorType = 0;
objRst ->LockType = 1;

// trovo l’id da utilizzare
sprintf(strSQL,””);
sprintf(strSQL,”SELECT TOP 1 ID FROM UA#%s ORDER BY ID DESC”,szTable);

objRst ->Open(strSQL, objConnection,0,1,1);     //adCmdText

if((objRst ->eof && objRst ->bof))
NewID = 1;
else
NewID = objRst ->Fields->Item(“ID”)+1;

//eseguo l’inserimeto del record
objRst ->Close;
__object_delete(objRst );

sprintf(strSQL,”INSERT INTO UA#%s (ID,%s) VALUES (%d,%s);”,szTable,szCampi,NewID,szValori);

objConnection->Execute(strSQL);

objConnection->Close;
__object_delete(objConnection);

return NewID;

}

La funzione viene chiamata con i parametri nome tabella, nome campi e valori, ritorna l’id del record
(NT)

Una risposta su “Utilizzare “INSERT INTO” con cScript”

“DATABASE=%sR;” // Rimuovere "R" dopo %s
Gli appicetti “” vanno ovviamente sostituiti con quelli normali "
Manga gestione degli errori.
Qualche indicazione sulle variabili "@ServerName" potrebbe aiutare.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *