Link to home
Start Free TrialLog in
Avatar of marcoloppo
marcoloppo

asked on

How to do a dynamic loop in a sql insert statement using ASP classic?

Hi,

I'm trying to do a dynamic loop to insert some data in the DB, but I'm getting no success. The code follows below, and the error message I get is something like:

error 800a000d
Type incompatible: 'SS_Busca_Usuario_Default_'

I think is not being attributed any value to the (x) variable inside the looping, and I don't know what's wrong, any ideas?

Thanks



Dim x
x=1
for x = 1 to 5
 
SS_Busca_Usuario_Default_(x) = "Select ud_nome from users_default WHERE ud_nome = '"& ud_login_(x) &"'"
Set RS_Busca_Usuario_Default_(x) = conn.execute(SS_Busca_Usuario_Default_(x))
 
next

Open in new window

Avatar of Ryan Chong
Ryan Chong
Flag of Singapore image

try:

Dim x(5)
x=1
for x = 1 to 5
 
SS_Busca_Usuario_Default_(x) = "Select ud_nome from users_default WHERE ud_nome = '"& ud_login_(x) &"'"
Set RS_Busca_Usuario_Default_(x) = conn.execute(SS_Busca_Usuario_Default_(x))
 
next
ASKER CERTIFIED SOLUTION
Avatar of Ryan Chong
Ryan Chong
Flag of Singapore image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
by the way, "Select ud_nome from users_default WHERE ud_nome = '"& ud_login_(x) &"'" is not an insert SQL statement..
What is ud_login_(x)? What type is it, and when and where does it get set?
<%
set RS = server.createobject("adodb.recordset")
for x = 1 to 5
	RS.open "Select ud_nome from users_default WHERE ud_nome = '"& ud_login_(x) &"'"
	if not RS.eof then
		' User is found
	end if
	RS.close
next
set RS = nothing
%>

Open in new window

Avatar of marcoloppo
marcoloppo

ASKER

Hi,

Thank you for the answers, I made what was suggested and it worked partly, in other words I got no error message anymore, but the variables:

ud_login_(x)
ud_email_(x)
ud_senha_(x)

Are blank, with no value. I receive via POST the values of these variables, that come from a form, and I got them like below:

ud_login_1 = request("ud_login_1")
ud_email_1 = request("ud_email_1")
ud_senha_1 = request("ud_senha_1")
ud_login_2 = request("ud_login_2")
ud_email_2 = request("ud_email_2")
ud_senha_2 = request("ud_senha_2")
ud_login_3 = request("ud_login_3")
ud_email_3 = request("ud_email_3")
ud_senha_3 = request("ud_senha_3")
ud_login_4 = request("ud_login_4")
ud_email_4 = request("ud_email_4")
ud_senha_4 = request("ud_senha_4")
ud_login_5 = request("ud_login_5")
ud_email_5 = request("ud_email_5")
ud_senha_5 = request("ud_senha_5")

So any of this variables above should be recorded in the SQL statement below, when the loop is running, what might be the problem?

Once thank you.






Dim SS_Busca_Usuario_Default_(5)
Dim ud_login_(5)
Dim RS_Busca_Usuario_Default_(5)
Dim SS_Inclui_User_Master_(5)
Dim ud_email_(5)
Dim ud_senha_(5)
 
x=1
for x = 1 to 5
 
SS_Busca_Usuario_Default_(x) = "Select ud_nome from users_default WHERE ud_nome = '"& ud_login_(x) &"'"
Set RS_Busca_Usuario_Default_(x) = conn.execute(SS_Busca_Usuario_Default_(x))
 
If RS_Busca_Usuario_Default_(x).eof = true then
response.write ud_login_(x)
'SS_Inclui_User_Master_(x) = "Insert into users_default (cod_empresa, ud_nome, ud_email, ud_pass_1, ud_pass_2, ativo, data) VALUES ("& RS_inclui_empresa("IdentityInsert") &", '"& ud_login_(x) &"', '"& ud_email_(x) &"', '"& ud_senha_(x) &"',  '"& md5(ud_senha_(x)) &"',  NULL, getdate())"
'conn.execute(SS_Inclui_User_Master_(x))
end if
 
next

Open in new window

Sorry, below folows the correct script
Dim SS_Busca_Usuario_Default_(5)
Dim ud_login_(5)
Dim RS_Busca_Usuario_Default_(5)
Dim SS_Inclui_User_Master_(5)
Dim ud_email_(5)
Dim ud_senha_(5)
 
x=1
for x = 1 to 5
 
SS_Busca_Usuario_Default_(x) = "Select ud_nome from users_default WHERE ud_nome = '"& ud_login_(x) &"'"
Set RS_Busca_Usuario_Default_(x) = conn.execute(SS_Busca_Usuario_Default_(x))
 
If RS_Busca_Usuario_Default_(x).eof = true then
SS_Inclui_User_Master_(x) = "Insert into users_default (cod_empresa, ud_nome, ud_email, ud_pass_1, ud_pass_2, ativo, data) VALUES ("& RS_inclui_empresa("IdentityInsert") &", '"& ud_login_(x) &"', '"& ud_email_(x) &"', '"& ud_senha_(x) &"',  '"& md5(ud_senha_(x)) &"',  NULL, getdate())"
conn.execute(SS_Inclui_User_Master_(x))
end if
 
next

Open in new window

SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Great Solution!