Click here to Skip to main content
15,905,148 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello experts,

I have a Stored procedure which inserts the data. AS soon as it is inserted, is there a way I can get the inserted data from DB to a Dataset. I know how to get normal data into Dataset from DB. But I want Dataset which consist of inserted data.
Here is my call to Stored procedure which should return auto generated column value which is a primary key. But It shows empty in
Dim strVID = prm.Value

VB
Dim cmdText As String = "CALL LIBR.SP_VEHINFO(@PRMVYEAR,@PRMVVMAKE,@PRMVVMODEL,@PRMVIN,@PRMINSTMI,@PRMREMOMI,@PRMTOTMI,@PRMINSDATE,@PRMPURDATE,@PRMTIRETYP,@PRMCREDIT,@PRMRMCMP,@PRVIVID)"
 Dim cm As New iDB2Command(cmdText, cn)
 Dim dtinstalled As Date = Convert.ToDateTime(dtInsDate)
 Dim dtpurchased As Date = Convert.ToDateTime(dtPurDate)
 cm.Parameters.Add("@PRMVYEAR", iDB2DbType.iDB2Numeric).Value = strVyear
 cm.Parameters.Add("@PRMVVMAKE", iDB2DbType.iDB2VarChar).Value = strVmake
 cm.Parameters.Add("@PRMVVMODEL", iDB2DbType.iDB2VarChar).Value = strVModel
 cm.Parameters.Add("@PRMVIN", iDB2DbType.iDB2VarChar).Value = strVin
 cm.Parameters.Add("@PRMINSTMI", iDB2DbType.iDB2Numeric).Value = Convert.ToDouble(strInstmiles)
 cm.Parameters.Add("@PRMREMOMI", iDB2DbType.iDB2Numeric).Value = Convert.ToDouble(strRemniles)
 cm.Parameters.Add("@PRMRTOTMI", iDB2DbType.iDB2Numeric).Value = Convert.ToDouble(strTotMiles)
 cm.Parameters.Add("@PRMINSDATE", iDB2DbType.iDB2Date).Value = dtinstalled
 cm.Parameters.Add("@PRMPURDATE", iDB2DbType.iDB2Date).Value = dtpurchased
 cm.Parameters.Add("@PRMTIRETYP", iDB2DbType.iDB2VarChar).Value = strTireType
 cm.Parameters.Add("@PRMCREDIT", iDB2DbType.iDB2VarChar).Value = strCredit
 cm.Parameters.Add("@PRMRMCMP", iDB2DbType.iDB2BigInt).Value = strRMCmp
 Dim prm As iDB2Parameter = cm.Parameters.Add("@PRVIVID", iDB2DbType.iDB2Integer)
 prm.Direction = ParameterDirection.Output
 Dim strVID = prm.Value


My Stored procedure in DB is
CREATE PROCEDURE LIBR.SP_CUSTINFO ( 
	IN PRMCIFN VARCHAR(30) , 
	IN PRMCILN VARCHAR(30) , 
	IN PRMCIADDR VARCHAR(90) , 
	IN PRMCICITY VARCHAR(20) , 
	IN PRMCISTATE VARCHAR(20) , 
	IN PRMCIZIP NUMERIC(9, 0) , 
	IN PRMCIPHONE NUMERIC(10, 0) , 
	IN PRMCIEMAIL VARCHAR(30) , 
	IN PRMCICLDATE DATE , 
	IN PRMCMP INTEGER , 
	OUT PRMCICID INTEGER ) 
	LANGUAGE SQL 
	SPECIFIC LIBR.SP_CUSTINFO 
	NOT DETERMINISTIC 
	MODIFIES SQL DATA 
	CALLED ON NULL INPUT 
	SET OPTION  ALWBLK = *ALLREAD , 
	ALWCPYDTA = *OPTIMIZE , 
	COMMIT = *NONE , 
	DECRESULT = (31, 31, 00) , 
	DFTRDBCOL = *NONE , 
	DYNDFTCOL = *NO , 
	DYNUSRPRF = *USER , 
	SRTSEQ = *HEX   
	P1 : BEGIN 
SELECT CICID INTO PRMCICID 
FROM FINAL TABLE 
( 
INSERT INTO LIBR. CLCUSINF VALUES ( PRMCIFN , PRMCILN , PRMCIADDR , PRMCICITY , PRMCISTATE , PRMCIZIP , PRMCIPHONE , PRMCIEMAIL , PRMCICLDATE , PRMCMP , DEFAULT ) 
) ; 
END P1  ; 

Now return value is showing empty always. However Data is inserted perfectly with in Table and column autogenerated is also working good. But why is it not showing when I return OUTPUT PARAMETER from the same.
Please let me know If anyone have got an idea
Posted
Updated 6-Feb-15 10:17am
v2
Comments
ZurdoDev 6-Feb-15 12:31pm    
Yes, after your insert do a SELECT statement at the end of the Stored Procedure and just return all you want.
sudevsu 6-Feb-15 12:58pm    
Yeah I did that but I wanted to know recently inserted data. Meaning, I think I am stuck with where clause ...
jaket-cp 6-Feb-15 12:33pm    
what is the difference between normal data and inserted data?
sudevsu 6-Feb-15 12:59pm    
I mean to say, with Select I know how to get data into DAtaset. But I said inserted data should be in Dataset as soon as it is inserted.
Normal data is just simple term I used to make it understand. nothing much
ZurdoDev 6-Feb-15 13:06pm    
To get it in your dataset reload the dataset.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900