Focal Point
Deleting some rows from a table.

This topic can be found at:
http://forums.informationbuilders.com/eve/forums/a/tpc/f/1381057331/m/176103713

December 14, 2009, 03:42 PM
TomG
Deleting some rows from a table.
Hi,

I am trying to delete rows from a table and am having a hard time finding a good way to do this. With this in mind, I do not want to delete all rows, only those rows that meet a certain criteria.

The table to be deleted from does not have any keys, so I cannot use the 'delete the existing record' option on the target properties.

I also tried using a DBMS SQL type flow and had
parsing errors occur after I entered the sql code to delete the rows.

Should I be using a stored procedure type flow to do this? And if so, does anyone have any samples for this?

Thanks in advance.

Regards,

Tom


WebFOCUS 7.6.7
Linux
csv/.txt, pdf, Excel
December 14, 2009, 04:19 PM
Waz
I would suggest using MODIFY with the NEXT statement.

This will step through the records, you will need to loop for each record to be deleted.

The only other option would be to TABLE the records out without the ones to be deleted, then clear the table and reload it.


Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

December 14, 2009, 04:32 PM
Dan Satchell
You will probably need to create a stored procedure and use MODIFY/NEXT logic to delete the records. But you will want to run the stored procedure as part of a flow in order to get a log of the results. Your delete logic might look something like this:
MODIFY FILE <filename>
NEXT <column name>
ON NEXT IF <negative of your selection criteria for deleting> GOTO TOP ;
ON NEXT DELETE
ON NONEXT GOTO EXIT
DATA
END



WebFOCUS 7.7.05
December 14, 2009, 04:51 PM
TomG
Hi Waz and Dan,

Thanks for the quick response.

Tom


WebFOCUS 7.6.7
Linux
csv/.txt, pdf, Excel
December 15, 2009, 07:38 AM
Tobar
Tom,

I would worry about performance with the check each record/looping approach. I think the phrase "when doing database things, use a database tool" is a good phrase to live by. I would go the DBMS SQL route. Your "parsing error" might have been just some bad SQL. Send your delete statement. Set based deleting from tables (and adding/modifying) is what DBs are made for.


------
Livin' down on the cube farm. Left, right, right.

iWay 5.6
Windows
Excel, Tab-delimited, XML
January 08, 2010, 01:45 PM
TomG
Forgot to update this posting. I used a stored procedure to call an sql statement that deleted
the rows from the table.


SQL DELETE FROM tableA where tableA_field >= &PARM1;
END


WebFOCUS 7.6.7
Linux
csv/.txt, pdf, Excel