Creating the Procedures

Now you create procedures within TDV to search, add to, and delete the play data.

Procedure

Used To

playdataByID

GET data

insertPlaydata

PUT data

deletePlaydata

DELETE data

Create the procedures needed to GET, PUT, and DELETE data

1. Open Studio.
2. For each of the three scripts, right-click to select New SQL Script from the Studio tree.
3. Name the scripts as follows:
playdataByID
insertPlaydata
deletePlaydata

4. Copy the appropriate script contents into the editor.

For the script

Copy the following into the editor

deletePlaydata

PROCEDURE deletePlaydata(
IN pk VARCHAR(250),
OUT response VARCHAR(250)
)
BEGIN
	INDEPENDENT TRANSACTION 
  delete from /shared/playdata/Vplaydata 
  where ID = pk; 
  set response='row '|| pk || ' deleted';
  COMMIT;	
END

insertPlaydata

PROCEDURE insertPlaydata(
IN id_val VARCHAR(250),
IN name_val VARCHAR(250),
IN author_val VARCHAR(250),
OUT response VARCHAR(250)
)
BEGIN
	INDEPENDENT TRANSACTION 
	DECLARE r ROW (ID VARCHAR(250));
	DECLARE c CURSOR(ID VARCHAR(250));
	set response='row '|| id_val || ' already EXISTS!';	
	OPEN c FOR 
		SELECT cs.ID FROM /shared/playdata/Vplaydata cs 
		WHERE cs.ID=id_val;
	FETCH c INTO r;
	IF NOT c.FOUND  
	THEN
		INSERT INTO /shared/playdata/Vplaydata (ID,name,author)
		VALUES (id_val, name_val,author_val);
	    set response='row '|| id_val || ' inserted';	
	END IF;
	COMMIT;
END

playdataByID

PROCEDURE playdataByID(
    IN id_arg INTEGER, 
    OUT result CURSOR (
        ID INTEGER, 
        name VARCHAR(32768), 
        author VARCHAR(32768)
        )
    )
    BEGIN
	DECLARE isnull varchar(12);
	set isnull=nvl2(id_arg,''||id_arg,'true');
	IF  isnull <> 'true'
	THEN
        OPEN result FOR 
            SELECT 
                id_arg ID, 
                Vplaydata.name, 
                Vplaydata.author
            FROM      
                /shared/playdata/Vplaydata Vplaydata
            WHERE
                id_arg = Vplaydata.ID;
	ELSEIF isnull='true'
	THEN
	       OPEN result FOR 
            SELECT 
			CAST(Vplaydata.ID as INTEGER) ID, 
                Vplaydata.name, 
                Vplaydata.author
            FROM      
                /shared/playdata/Vplaydata Vplaydata;
	END IF;
END
5. Save each procedure.