Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JullySL

ASP MYSQL Insert e Update

Recommended Posts

Olá Pessoa!

Gostaria de uma ajudinha

Tenho duas tabelas a imoveis e a fotos

Na tabela imoveis tenho a coluna referencia onde esta referencia terá várias fotos (fotos que ficará na tabela fotos), porém fiz um insert para a tabela imoveis e outro para tabela imóveis, porém quando é para inserir está inserindo somente 1 registro na tabela fotos, alguém pode me ajudar?

if rsCadastro.eof then
sSQL = "INSERT INTO IMOVEIS (REFERENCIA,) VALUES('"&REFERENCIA.text&"') "
objConnection.execute sSQL
sSQL2 = "INSERT INTO FOTOS (NROFOTO, ARQUIVO, REFERENCIA) VALUES('2','2','"&REFERENCIA.text&"')"
objConnection.execute sSQL2
else
atualiza = "UPDATE imoveis SET CADASTRO = '"&CADASTRO.text&"' Where REFERENCIA='"&REFERENCIA.text&"' "
objConnection.execute atualiza
atualiza1 = "UPDATE FOTOS SET ARQUIVO = '10.jpg' where REFERENCIA='"&REFERENCIA.text&"' "
objConnection.execute atualiza1
end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um loop no seu INSERT

Compartilhar este post


Link para o post
Compartilhar em outros sites

Criei o loop porém ele está fazendo somente o primeiro insert o nº onde deveria armazenar as fotos ele não está mais gravando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo:

if qtd_produtos = ""
produtos= Split(Request.Form("produtos"), ",")

For i = 1 To Request.Form("produtos").Count

Response.write request.form("produtos")(i)&"<BR>" & request.form("qtd_produtos")(i)&"<BR>"
SQL = "INSERT INTO lista (lista_prodID,lista_quant) Values ('"&request.form("produtos")(i)&"','"&request.form("qtd_produtos")(i)&"')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não expliquei direito:

 

Tenho um arquivo xml nele contém uma tag que se repete que é a tag imagem, preciso pegar essa tag do Nod list e armazenar no banco de dados em mysql da tabela fotos. Consegui armazenar somente uma de cada referencia, sendo que tenho referencias que possuem mais de 1 imagem.

 

 

 

Segue código: O Insert para a tabela imóveis ok.

Insert da tabela fotos dá erro, ou quando não apresenta erro grava apenas uma foto na tabela FOTOS sendo que possui 2 a mais fotos.

 

<%

Set objConnection = Server.CreateObject("ADODB.Connection")

objConnection.Open("DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;PORT=3306;DATABASE=**;USER=root;PASSWORD=**;OPTION=3;")

 

 

Set objXMLDoc = Server.CreateObject("Microsoft.XMLDOM")

objXMLDoc.async = False

 

objXMLDoc.load("C:\inetpub\wwwroot\teste\doc_xml.xml")

 

Set Root = objXMLDoc.documentElement

Set NodeList = Root.getElementsByTagName("Imovel")

 

For iLoop = 0 to NodeList.length - 1

vREFERENCIA = NodeList.item(iLoop).selectSingleNode("REFERENCIA").text

vCADASTRO = NodeList.item(iLoop).selectSingleNode("CADASTRO").text

vurlimagem = NodeList.item(iLoop).selectSingleNode("urlimagem").text

 

'

' Ler na mY sQL

'

Set rsCadastro = Server.CreateObject("AdoDB.Recordset")

SelCadastro = "SELECT * FROM imoveis where REFERENCIA= '"&vREFERENCIA&"' "

rsCadastro.Open SelCadastro,objConnection

'response.Write(SelCadastro & "<br> <br>")

if rsCadastro.eof then

'

' Insere na Tabela Imóveis

'

sSQL = "INSERT into imoveis (REFERENCIA, CADASTRO) VALUES('"&vREFERENCIA&"', '"&vCADASTRO&"') "

objConnection.execute sSQL

 

'

' Insere na tabela Fotos

'

InsereFotos = "INSERT into fotos (NROFOTO, ARQUIVO, REFERENCIA) VALUES('"&vurlimagem&"','"&vurlimagem&"','"&REFERENCIA.text&"') "

objConnection.execute InsereFotos

 

else

 

Set rsFotos = Server.CreateObject("AdoDB.Recordset")

SelFotos = "SELECT * FROM fotos where REFERENCIA= '"&vREFERENCIA&"' "

rsFotos.Open SelFotos,objConnection

response.Write(SelFotos)

 

do while not rsFotos.eof

response.write(vurlimagem)

response.write("<br>")

 

 

rsFotos.movenext

loop

 

'

' Atualiza

'

sSQL1 = "UPDATE imoveis SET CADASTRO = '"&vCADASTRO&"' where REFERENCIA='"&vREFERENCIA&"' "

objConnection.execute sSQL1

 

sSQL2 = "UPDATE fotos SET ARQUIVO = '"&vurlimagem&"' where REFERENCIA='"&vREFERENCIA&"' "

objConnection.execute sSQL2

 

end if

'

' Executa SQL

'

 

Set rsCadastro = Server.CreateObject("AdoDB.Recordset")

rsCadastro.Open SelCadastro,objConnection

Next

 

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro gerado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não apresenta erro, apenas não grava todas as fotos da refencia na tabela fotos, grava apenas a primeira as demais ele pula para a próxima

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc tem que colocar a variavel do for (aquela que irá armazenar a quantidade) na sua SQL, tipo o exemplo que postei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

segue como modelo aquele exemplo que postei de for

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,
Fiz o código porém está apresentando mensagem de erro:

ADODB.Recordset erro '800a0cc1'

O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.

vurlimagem = Split(rsCadastro("ARQUIVO"), ",")

 

Segue código:

Set rsCadastro = Server.CreateObject("AdoDB.Recordset")
SelCadastro = "SELECT * FROM imoveis where REFERENCIA= '"&vREFERENCIA&"' "
rsCadastro.Open SelCadastro,objConnection
if rsCadastro.eof then
sSQL = "INSERT INTO IMOVEIS (REFERENCIA, CD_PROPRIETARIO, CADASTRO) VALUES('"&vREFERENCIA&"', '"&vCD_PROPRIETARIO&"', '"&vCADASTRO&"') "
objConnection.execute sSQL
elseif qtd_fotos = "" then
vurlimagem = Split(rsCadastro("ARQUIVO"), ",")
For i = 1 To rsCadastro("ARQUIVO").Count
sSQL2 = "INSERT INTO FOTOS (NROFOTO, ARQUIVO, REFERENCIA) VALUES('"&vREFERENCIA&"','"&qtd_fotos&"','"&vREFERENCIA&"')"
objConnection.execute sSQL2
next
end if
Se alguém puder ajudar.

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem que passar a variável do for na cláusula SQL:

SQL = "INSERT INTO lista (lista_prodID,lista_quant) Values ('"&request.form("produtos")(i)&"','"&request.form("qtd_produtos")(i)&"')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não está apresentando erro, porém não está inserindo na tabela fotos.

Insere somente na tabela imóveis.

Set Root = objXMLDoc.documentElement
Set NodeList = Root.getElementsByTagName("Imovel")
For iLoop = 0 to NodeList.length - 1
vREFERENCIA = NodeList.item(iLoop).selectSingleNode("REFERENCIA").text
vCD_PROPRIETARIO = NodeList.item(iLoop).selectSingleNode("CD_PROPRIETARIO").text
vCADASTRO = NodeList.item(iLoop).selectSingleNode("CADASTRO").text
vurlimagem = NodeList.item(iLoop).selectSingleNode("urlimagem").text
'
' Ler na mY sQL
'
Set rsCadastro = Server.CreateObject("AdoDB.Recordset")
SelCadastro = "SELECT * FROM imoveis where REFERENCIA= '"&vREFERENCIA&"' "
rsCadastro.Open SelCadastro,objConnection
if rsCadastro.eof then
'
' Insere
'
sSQL = "INSERT INTO IMOVEIS (REFERENCIA, CD_PROPRIETARIO, CADASTRO) VALUES('"&vREFERENCIA&"', '"&vCD_PROPRIETARIO&"', '"&vCADASTRO&"') "
objConnection.execute sSQL
elseif qtd_fotos = "" then
vurlimagem = Split(request.form("ARQUIVO"), ",")
For i = 1 To request.form("ARQUIVO").Count
sSQL2 = "INSERT INTO FOTOS (NROFOTO, ARQUIVO, REFERENCIA) VALUES('"&vREFERENCIA&"', '"&request.form("ARQUIVO")(i)&"','"&vREFERENCIA&"')"
objConnection.execute sSQL2
'
' Atualiza
'
atualiza = "UPDATE imoveis SET CD_PROPRIETARIO = '"&vCD_PROPRIETARIO&"', CADASTRO = '"&vCADASTRO&"' Where REFERENCIA='"&REFERENCIA&"' "
objConnection.execute atualiza
atualiza1 = "UPDATE FOTOS SET ARQUIVO = '"&request.form("ARQUIVO")(i)&"' where REFERENCIA='"&vREFERENCIA&"' "
objConnection.execute atualiza1
next
end if
'
' Executa SQL
'
Set rsCadastro = Server.CreateObject("AdoDB.Recordset")
rsCadastro.Open SelCadastro,objConnection
Next

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL para ver o que esta sendo passado

 

sSQL2 = "INSERT INTO FOTOS (NROFOTO, ARQUIVO, REFERENCIA) VALUES('"&vREFERENCIA&"', '"&request.form("ARQUIVO")(i)&"','"&vREFERENCIA&"')"

response.write(sSQL2)
response.end()
objConnection.execute sSQL2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não mostrou nada =/

Então fiz um response no sSQL e no sSQL2

sSQL = "INSERT INTO IMOVEIS (REFERENCIA, CD_PROPRIETARIO, CADASTRO) VALUES('"&vREFERENCIA&"', '"&vCD_PROPRIETARIO&"', '"&vCADASTRO&"') "
objConnection.execute sSQL
response.write(sSQL &"<br>")
elseif qtd_fotos = "" then
vurlimagem = Split(request.form("ARQUIVO"), ",")
For i = 1 To request.form("ARQUIVO").Count
sSQL2 = "INSERT INTO FOTOS (NROFOTO, ARQUIVO, REFERENCIA) VALUES('"&vREFERENCIA&"', '"&request.form("ARQUIVO")(i)&"','"&vREFERENCIA&"')"
objConnection.execute sSQL2
response.write(sSQL2)
response.end()

Ele mostrou

INSERT INTO IMOVEIS (REFERENCIA, CD_PROPRIETARIO, CADASTRO) VALUES('631401', '2', 'APARTAMENTOS')
INSERT INTO IMOVEIS (REFERENCIA, CD_PROPRIETARIO, CADASTRO) VALUES('3', '3', 'APARTAMENTOS')

INSERT INTO IMOVEIS (REFERENCIA, CD_PROPRIETARIO, CADASTRO) VALUES('7', '4', 'APARTAMENTOS')


Já o insert das fotos ele não mostra nada =/

Agradeço sua atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se esta vindo dados de request.form("ARQUIVO")

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc tem que passar a variavel do for na SQL, tipo assim:

 

For i = 1 To Request.Form("produtos").Count

Response.write request.form("produtos")(i)&"<BR>" & request.form("qtd_produtos")(i)&"<BR>"
SQL = "INSERT INTO lista (lista_prodID,lista_quant) Values ('"&request.form("produtos")(i)&"','"&request.form("qtd_produtos")(i)&"')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas eu estou passando
sSQL2 = "INSERT INTO FOTOS (NROFOTO, ARQUIVO, REFERENCIA) VALUES('"&vREFERENCIA&"', '"&request.form("ARQUIVO")(i)&"','"&vREFERENCIA&"')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

no response.write de request.form("ARQUIVO")(i) o que vem pra vc

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.