Click here to Skip to main content
15,890,043 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
How to insert data in Db2 database using store procedure with Vb6

For i = 1 To lvwDatalist.ListItems.Count
If Trim(lvwDatalist.ListItems(i).Text) = "" Then Exit For
With oCmd
.Parameters.Refresh
.ActiveConnection = cnAP
.CommandText = ("{CALL DB2ADMIN.INSERT_MISYS_ACTSTAT(?,?,?,?,?,?,?,?,?)}")
.CommandType = adCmdStoredProc

.Parameters.Append .CreateParameter("p_ACTTIT", adVarChar, adParamInputOutput, 5000)
.Parameters.Append .CreateParameter("p_BRANCD", adVarChar, adParamInputOutput, 200)
.Parameters.Append .CreateParameter("p_CUSTID", adVarChar, adParamInputOutput, 50)
.Parameters.Append .CreateParameter("p_ACSUFIX", adVarChar, adParamInputOutput, 100)
.Parameters.Append .CreateParameter("p_ACTNUM", adVarChar, adParamInputOutput, 25)
.Parameters.Append .CreateParameter("p_BLOCKED", adVarChar, adParamInputOutput, 25)
.Parameters.Append .CreateParameter("p_INACTIVE", adVarChar, adParamInputOutput, 25)
.Parameters.Append .CreateParameter("p_CLOSED", adVarChar, adParamInputOutput, 25)
.Parameters.Append .CreateParameter("p_CURRBAL", adDecimal, adParamInputOutput, 5)

oCmd.Parameters("p_ACTTIT").Value = Trim(lvwDatalist.ListItems(i).Text)
oCmd.Parameters("p_BRANCD").Value = fixQuotes(lvwDatalist.ListItems(i).SubItems(1))
oCmd.Parameters("p_CUSTID").Value = fixQuotes(lvwDatalist.ListItems(i).SubItems(2))
oCmd.Parameters("p_ACSUFIX").Value = fixQuotes(lvwDatalist.ListItems(i).SubItems(3))
oCmd.Parameters("p_ACTNUM").Value = fixQuotes(lvwDatalist.ListItems(i).SubItems(4))
oCmd.Parameters("p_BLOCKED").Value = fixQuotes(lvwDatalist.ListItems(i).SubItems(5))
oCmd.Parameters("p_INACTIVE").Value = fixQuotes(lvwDatalist.ListItems(i).SubItems(6))
oCmd.Parameters("p_CLOSED").Value = fixQuotes(lvwDatalist.ListItems(i).SubItems(7))
''oCmd.Parameters("p_CURRBAL").Value = IIf(fixQuotes(lvwDatalist.ListItems(i).SubItems(8)) = "", 0, lvwDatalist.ListItems(i).SubItems(8))
oCmd.Parameters("p_CURRBAL").Value = Val(lvwDatalist.ListItems(i).SubItems(8))

.Execute
End With

I am using this code and its give me error ---
Runtime Error 2147217904(80040e10)
No value given for one or more required parameters.



AND THIS IS MY SP IN DB2

SQL
CREATE PROCEDURE INSERT_MISYS_ACTSTAT (IN  P_ACTTIT    VARCHAR(5000),
                IN  P_BRANCD    VARCHAR(50),
                IN  P_CUSTID    VARCHAR(100),
                IN  P_ACSUFIX   VARCHAR(3),
                IN  P_ACTNUM       VARCHAR(25),
                IN  P_BLOCKED    VARCHAR(1),
                IN  P_INACTIVE     VARCHAR(1),
                IN  P_CLOSED  VARCHAR(1),
                IN  P_CURRBAL     DECIMAL(8,0) DEFAULT 0)
P1: BEGIN
    INSERT INTO DB2ADMIN.MISYS_ACTSTAT (
            ACTTIT,
            BRANCD,
            CUSTID,
            ACSUFIX,
            ACTNUM,
            BLOCKED,
            INACTIVE,
            CLOSED,
            CURRBAL)
     VALUES (P_ACTTIT,
     P_BRANCD,
     P_CUSTID,
     P_ACSUFIX,
     P_ACTNUM,
     P_BLOCKED,
     P_INACTIVE,
     P_CLOSED,
     P_CURRBAL
     );
END P1
Posted
Updated 14-Jul-13 20:20pm
v2

Check your table DB2ADMIN.MISYS_ACTSTAT, there might be required columns in that.
 
Share this answer
 
Private Sub cmdTransfer_DB2_Click(Index As Integer)
On Error GoTo Err_Des

Dim Cmd As New ADODB.Command
Dim Param As New ADODB.Parameter
Dim res As Integer

ProBar.Visible = True
ProBar.Min = 0
ProBar.Max = lvwDatalist.ListItems.Count
ProBar.Value = 0

lblCounter.Caption = 0
Me.MousePointer = vbHourglass

Dim i As Integer
For i = 1 To lvwDatalist.ListItems.Count
If Trim(lvwDatalist.ListItems(i).Text) = "" Then Exit For
With oCmd
.Parameters.Refresh
.ActiveConnection = cnAP
Set Cmd.ActiveConnection = cnAP
.CommandType = adCmdStoredProc
Cmd.CommandText = "{CALL DB2admin.INSERT_MISYS_ACTSTAT(?,?,?,?,?,?,?,?,?)}"

Set Param = Cmd.CreateParameter("p_ACTTIT", adVarChar, adParamInput, 500, Trim(lvwDatalist.ListItems(i).Text))
Cmd.Parameters.Append Param

Set Param = oCmd.CreateParameter("p_BRANCD", adVarChar, adParamInput, 200, fixQuotes(lvwDatalist.ListItems(i).SubItems(1)))
Cmd.Parameters.Append Param

Set Param = oCmd.CreateParameter("p_CUSTID", adVarChar, adParamInput, 100, fixQuotes(lvwDatalist.ListItems(i).SubItems(2)))
Cmd.Parameters.Append Param

Set Param = oCmd.CreateParameter("p_ACSUFIX", adVarChar, adParamInput, 50, fixQuotes(lvwDatalist.ListItems(i).SubItems(3)))
Cmd.Parameters.Append Param

Set Param = oCmd.CreateParameter("p_ACTNUM", adVarChar, adParamInput, 50, fixQuotes(lvwDatalist.ListItems(i).SubItems(4)))
Cmd.Parameters.Append Param

Set Param = oCmd.CreateParameter("p_BLOCKED", adVarChar, adParamInput, 10, fixQuotes(lvwDatalist.ListItems(i).SubItems(5)))
Cmd.Parameters.Append Param

Set Param = oCmd.CreateParameter("p_INACTIVE", adVarChar, adParamInput, 10, fixQuotes(lvwDatalist.ListItems(i).SubItems(6)))
Cmd.Parameters.Append Param

Set Param = oCmd.CreateParameter("p_CLOSED", adVarChar, adParamInput, 10, fixQuotes(lvwDatalist.ListItems(i).SubItems(7)))
Cmd.Parameters.Append Param

Set Param = oCmd.CreateParameter("p_CURRBAL", adBigInt, adParamInput, 8, Val(lvwDatalist.ListItems(i).SubItems(8)))
Cmd.Parameters.Append Param

Cmd.Execute
End With

lblCounter.Caption = Val(lblCounter.Caption) + 1
lnCounter = Val(lnCounter) + 1
ProBar.Value = lnCounter
lblCounter.Refresh
Cmd.Parameters.Refresh
Next i

lvwDatalist.ListItems.Clear
lnCounter = 0
ProBar.Visible = False
Me.MousePointer = vbNormal
MsgBox ("Done!")
Err_Des:
MsgBox (Err.Description)
Err.Clear


End Sub
 
Share this answer
 

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