cintiadel 0 Denunciar post Postado Março 17, 2009 preciso criar páginas de atualizações de uma base em asp net. nela eu seleciono dados da base1 , deleto tudo que esta na base2, e insiro os dados da base1 na base2. e disparo um email com: - total de registros encontrados - total de registros transmitidos - hora inicio da atualizacao - hora fim da atualizacao no asp ele faz isso em blocos de 100 com while, o q torna mais rapido usando While i <= 100, como faria em asp net??? exemplo como essa: <!--#include file="database.asp"--> <% 'On Error Resume Next Sub manda_email(mensagem2) set mail = Server.CreateObject("CDONTS.NewMail") mail.from = "email" mail.to = "email" mail.Subject = "Atualização dos Alunos" mail.BodyFormat = 0 mail.MailFormat = 0 mail.body = mensagem2 mail.send set mail = nothing End Sub server.scripttimeout = 999999 HORA_INICIO =NOW() SQL_TEMP= "SELECT * FROM [Tabela] WHERE [aass]= '20082' or [aass] = '20091' " SQL_CONTA = "SELECT count(*) FROM [Tabela] WHERE [aass] = '20082' or [aass] = '20091'" Set Aluno = dbAlunosLocal.Execute(SQL_TEMP) Set conta_Aluno = dbAlunosLocal.Execute(SQL_CONTA) TOTAL_REGISTROS = CONTA_ALUNO(0) CONTA_ALUNO.CLOSE SET CONTA_ALUNO = NOTHING dbAlunosRemoto.Execute("Delete from tabela") j=0 k=0 While Not Aluno.EOF response.write(aluno("codigo") & "<br>") response.Flush() SQL = "INSERT INTO alunosatuais" SQL = SQL & "(codigo" SQL = SQL & ",nome" SQL = SQL & ",sigla" SQL = SQL & ",sit" SQL = SQL & ",local1" SQL = SQL & ",bairro" SQL = SQL & ",aass" SQL = SQL & ",dtmat" SQL = SQL & ",data" SQL = SQL & ",diapgto" SQL = SQL & ",se_tipo_diapgto)" SQL = SQL & " VALUES " I=0 while i <= 100 if not (aluno.EOF) then SQL = SQL & "('" & aluno("codigo") & "'" NOME = REPLACE(ALUNO("NOME"),"'"," ") SQL = SQL & ",'" & NOME & "'" sigla = "NA" SQL = SQL & ",'" & sigla & "'" SQL = SQL & ",'" & aluno("sit") & "'" endereco = REPLACE(ALUNO("LOCAL1"),"'"," ") endereco = replace(endereco,","," ") SQL = SQL & ",'" & endereco & "'" BAIRRO = REPLACE(aluno("bairro"),"'"," ") SQL = SQL & ",'" & BAIRRO & "'" SQL = SQL & ",'" & aluno("aass")& "'" temp_dtmat = split(aluno("dtmat"),"/") dia_mat = temp_dtmat(0) mes_mat = temp_dtmat(1) ano_mat = temp_dtmat(2) dtmat = ano_mat & "-" & mes_mat & "-" & dia_mat temp_dt = split(aluno("data"),"/") if not aluno("data") = null then dia = temp_dt(0) mes = temp_dt(1) ano = temp_dt(2) data = ano & "-" & mes & "-" & dia else data = year(now()) & "-" & month(now()) & "-" & day(now()) end if SQL = SQL & ",'" & data & "'" SQL = SQL & ",0" SQL = SQL & "," & aluno("diapgto") if i = 100 then SQL = SQL & ",'" & aluno("se_tipo_diapgto") & "')" else SQL = SQL & ",'" & aluno("se_tipo_diapgto") & "')," end if End if i=i+1 k=k+1 if not (aluno.EOF) then aluno.movenext else SQL = Left(SQL,(len(sql)-1)) dbAlunosRemoto.execute(SQL) HORA_FIM = NOW() MENSAGEM = "TOTAL DE REGISTROS ENCONTRADOS:" & TOTAL_REGISTROS & "<BR>" MENSAGEM= MENSAGEM & "TOTAL DE REGISTROS TRANSMITIDOS:" & (k - 1)& "<BR>" MENSAGEM = MENSAGEM & "HORA INICIO:" & HORA_INICIO & "<BR>" MENSAGEM = MENSAGEM & "HORA FIM:" & HORA_FIM & "<BR>" call manda_email(mensagem) Response.Write(mensagem) Response.End() end if wend dbAlunosRemoto.execute(SQL) j=j+1 wend HORA_FIM = DATE() & "-" & NOW() MENSAGEM = "TOTAL DE REGISTROS ENCONTRADOS:" & TOTAL_REGISTROS & "<BR>" MENSAGEM= MENSAGEM & "TOTAL DE REGISTROS TRANSMITIDOS:" & (k-1) & "<BR>" MENSAGEM = MENSAGEM & "HORA INICIO:" & HORA_INICIO & "<BR>" MENSAGEM = MENSAGEM & "HORA FIM:" & HORA_FIM & "<BR>" call manda_email(MENSAGEM) Response.Write(mensagem) %> Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 17, 2009 Você pode utilizar a mesma lógica, acho que não terá problemas. Abraços.. Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 18, 2009 Você pode utilizar a mesma lógica, acho que não terá problemas. Abraços.. ate ai tudo bem, mas n to conseguindo reescrever o codigo em asp netpode me ajudar Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo1 0 Denunciar post Postado Março 18, 2009 Como disse o oenning...tenta a mesma lgica... ve se funciona esse ta igual ao seu quase Ps...asp.net nao tem include Cria uma classe conexao e chama ela na pagina Public Class Class1 Sub manda_email(ByVal mensagem2) mail = Server.CreateObject("CDONTS.NewMail") mail.from = "email" mail.to = "email" mail.Subject = "Atualização dos Alunos" mail.BodyFormat = 0 mail.MailFormat = 0 mail.body = mensagem2 mail.send() mail = Nothing End Sub Public Sub TransfereDados() <!--#include file="database.asp"--> server.scripttimeout = 999999 HORA_INICIO = NOW() SQL_TEMP = "SELECT * FROM [Tabela] WHERE [aass]= '20082' or [aass] = '20091' " SQL_CONTA = "SELECT count(*) FROM [Tabela] WHERE [aass] = '20082' or [aass] = '20091'" Aluno = dbAlunosLocal.Execute(SQL_TEMP) conta_Aluno = dbAlunosLocal.Execute(SQL_CONTA) TOTAL_REGISTROS = CONTA_ALUNO(0) CONTA_ALUNO.CLOSE() CONTA_ALUNO = Nothing dbAlunosRemoto.Execute("Delete from tabela") j = 0 k = 0 While Not Aluno.EOF response.write(aluno("codigo") & "<br>") response.Flush() SQL = "INSERT INTO alunosatuais" SQL = SQL & "(codigo" SQL = SQL & ",nome" SQL = SQL & ",sigla" SQL = SQL & ",sit" SQL = SQL & ",local1" SQL = SQL & ",bairro" SQL = SQL & ",aass" SQL = SQL & ",dtmat" SQL = SQL & ",data" SQL = SQL & ",diapgto" SQL = SQL & ",se_tipo_diapgto)" SQL = SQL & " VALUES " I = 0 While i <= 100 If Not (aluno.EOF) Then SQL = SQL & "('" & aluno("codigo") & "'" NOME = REPLACE(ALUNO("NOME"), "'", " ") SQL = SQL & ",'" & NOME & "'" sigla = "NA" SQL = SQL & ",'" & sigla & "'" SQL = SQL & ",'" & aluno("sit") & "'" endereco = REPLACE(ALUNO("LOCAL1"), "'", " ") endereco = replace(endereco, ",", " ") SQL = SQL & ",'" & endereco & "'" BAIRRO = REPLACE(aluno("bairro"), "'", " ") SQL = SQL & ",'" & BAIRRO & "'" SQL = SQL & ",'" & aluno("aass") & "'" temp_dtmat = split(aluno("dtmat"), "/") dia_mat = temp_dtmat(0) mes_mat = temp_dtmat(1) ano_mat = temp_dtmat(2) dtmat = ano_mat & "-" & mes_mat & "-" & dia_mat temp_dt = split(aluno("data"), "/") If Not aluno("data") = null Then dia = temp_dt(0) mes = temp_dt(1) ano = temp_dt(2) data = ano & "-" & mes & "-" & dia Else data = year(now()) & "-" & month(now()) & "-" & day(now()) End If SQL = SQL & ",'" & data & "'" SQL = SQL & ",0" SQL = SQL & "," & aluno("diapgto") If i = 100 Then SQL = SQL & ",'" & aluno("se_tipo_diapgto") & "')" Else SQL = SQL & ",'" & aluno("se_tipo_diapgto") & "')," End If End If i = i + 1 k = k + 1 If Not (aluno.EOF) Then aluno.movenext() Else SQL = Left(SQL, (len(sql) - 1)) dbAlunosRemoto.execute(SQL) HORA_FIM = NOW() MENSAGEM = "TOTAL DE REGISTROS ENCONTRADOS:" & TOTAL_REGISTROS & "<BR>" MENSAGEM = MENSAGEM & "TOTAL DE REGISTROS TRANSMITIDOS:" & (k - 1) & "<BR>" MENSAGEM = MENSAGEM & "HORA INICIO:" & HORA_INICIO & "<BR>" MENSAGEM = MENSAGEM & "HORA FIM:" & HORA_FIM & "<BR>" Call manda_email(mensagem) Response.Write(mensagem) Response.End() End If End While dbAlunosRemoto.execute(SQL) j = j + 1 End While HORA_FIM = Today MENSAGEM = "TOTAL DE REGISTROS ENCONTRADOS:" & TOTAL_REGISTROS & "<BR>" MENSAGEM = MENSAGEM & "TOTAL DE REGISTROS TRANSMITIDOS:" & (k - 1) & "<BR>" MENSAGEM = MENSAGEM & "HORA INICIO:" & HORA_INICIO & "<BR>" MENSAGEM = MENSAGEM & "HORA FIM:" & HORA_FIM & "<BR>" manda_email(MENSAGEM) Response.Write(mensagem) End Sub End Class Nao tive tempo de testar... É capaz de dar erro na conexao... dai eu ajudo Q q coisa post ai Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 18, 2009 deu um monte de variavel n declarada Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 18, 2009 Declare elas cintia. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 18, 2009 Declare elas cintia. Abraços... ate ai tudo bemmas como vou declarar as palavras em negrito q estao com esse erro, n sei como declarar o tipo dessas variaveis: server.scripttimeout = 999999 HORA_INICIO = Now() SQL_TEMP = "SELECT * FROM [Tabela] WHERE [aass]= '20082' or [aass] = '20091' " SQL_CONTA = "SELECT count(*) FROM [Tabela] WHERE [aass] = '20082' or [aass] = '20091'" Aluno = dbAlunosLocal.Execute(SQL_TEMP) conta_Aluno = dbAlunosLocal.Execute(SQL_CONTA) TOTAL_REGISTROS = CONTA_ALUNO(0) CONTA_ALUNO.CLOSE() CONTA_ALUNO = Nothing dbAlunosRemoto.Execute("Delete from tabela") While Not Aluno.EOF response.write(aluno("codigo") & "<br>") response.Flush() SQL = "INSERT INTO alunosatuais" por isso pedi ajuda pra reescrever o codigo Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo1 0 Denunciar post Postado Março 18, 2009 Dim HORA_INICIO as date = Now() Dim SQL_TEMP as string = "SELECT * FROM [Tabela] WHERE [aass]= '20082' or [aass] = '20091' " Dim SQL_CONTA as string = "SELECT count(*) FROM [Tabela] WHERE [aass] = '20082' or [aass] = '20091'" Dim Aluno as Object = dbAlunosLocal.Execute(SQL_TEMP) Dim conta_Aluno as object = dbAlunosLocal.Execute(SQL_CONTA) Dim TOTAL_REGISTROS as integer = CONTA_ALUNO(0) e assim vai Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 19, 2009 Dim HORA_INICIO as date = Now() Dim SQL_TEMP as string = "SELECT * FROM [Tabela] WHERE [aass]= '20082' or [aass] = '20091' " Dim SQL_CONTA as string = "SELECT count(*) FROM [Tabela] WHERE [aass] = '20082' or [aass] = '20091'" Dim Aluno as Object = dbAlunosLocal.Execute(SQL_TEMP) Dim conta_Aluno as object = dbAlunosLocal.Execute(SQL_CONTA) Dim TOTAL_REGISTROS as integer = CONTA_ALUNO(0)e assim vaie esse trecho do movenextcomo passa pra asp net if not (aluno.EOF) then aluno.movenext else SQL = Left(SQL,(len(sql)-1)) dbAlunosRemoto.execute(SQL) Dim HORA_INICIO as date = Now() Dim SQL_TEMP as string = "SELECT * FROM [Tabela] WHERE [aass]= '20082' or [aass] = '20091' " Dim SQL_CONTA as string = "SELECT count(*) FROM [Tabela] WHERE [aass] = '20082' or [aass] = '20091'" Dim Aluno as Object = dbAlunosLocal.Execute(SQL_TEMP) Dim conta_Aluno as object = dbAlunosLocal.Execute(SQL_CONTA) Dim TOTAL_REGISTROS as integer = CONTA_ALUNO(0)e assim vai este trecho n to conseguindo: If Not (dr_sei.Read) Then aluno.movenext() Else sql = Left(sql, (Len(sql) - 1)) dbAlunosRemoto.execute(sql) HORA_FIM = Now() End If Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Março 23, 2009 Dim HORA_INICIO as date = Now() Dim SQL_TEMP as string = "SELECT * FROM [Tabela] WHERE [aass]= '20082' or [aass] = '20091' " Dim SQL_CONTA as string = "SELECT count(*) FROM [Tabela] WHERE [aass] = '20082' or [aass] = '20091'" Dim Aluno as Object = dbAlunosLocal.Execute(SQL_TEMP) Dim conta_Aluno as object = dbAlunosLocal.Execute(SQL_CONTA) Dim TOTAL_REGISTROS as integer = CONTA_ALUNO(0)e assim vaisera q alguem pode me ajudar????n sei como declarar a parte em negrito. e tbm tah com erro: Tentativa inválida de chamar Read quando o leitor estava fechado. na linha do while:While dr_sei.Read() segue o codigo como esta: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Server.ScriptTimeout = 999999 Dim consei As New Data.SqlClient.SqlConnection("conexao1") Dim conweb As New Data.SqlClient.SqlConnection("conexao2") Dim hora_inicio As Date = Now Dim com_sql_temp As New Data.SqlClient.SqlCommand Dim com_sql_conta As New Data.SqlClient.SqlCommand Dim com_del_web As New Data.SqlClient.SqlCommand Dim sql As New Data.SqlClient.SqlCommand Dim dr_sei As Data.SqlClient.SqlDataReader Dim dr_count As Data.SqlClient.SqlDataReader consei.Open() com_sql_temp.Connection = consei com_sql_temp.CommandText = "SELECT * FROM tabela2 WHERE [aass]= '20082' or [aass] = '20091' " dr_sei = com_sql_temp.ExecuteReader dr_sei.Read() consei.Close() consei.Open() com_sql_conta.Connection = consei com_sql_conta.CommandText = "SELECT count(*) FROM tabela2 WHERE [aass] = '20082' or [aass] = '20091'" dr_count = com_sql_conta.ExecuteReader dr_count.Read() 'consei.Close() Dim HORA_FIM As Date Dim mensagem As String Dim TOTAL_REGISTROS As Integer = dr_count(0) 'dr_count.Close() dr_count = Nothing conweb.Open() com_del_web.Connection = conweb com_del_web.CommandText = "Delete from tabela1" com_del_web.ExecuteNonQuery() conweb.Close() Dim j As Integer Dim k As Integer j = 0 k = 0 While dr_sei.Read() Response.Write(dr_sei("codigo") & "<br>") Response.Flush() conweb.Open() sql.CommandText = "INSERT INTO alunosatuais" sql.CommandText = sql.CommandText & "(codigo" sql.CommandText = sql.CommandText & ",nome" sql.CommandText = sql.CommandText & ",sigla" sql.CommandText = sql.CommandText & ",dtmat" sql.CommandText = sql.CommandText & ",data" sql.CommandText = sql.CommandText & ",diapgto" sql.CommandText = sql.CommandText & ",se_tipo_diapgto)" sql.CommandText = sql.CommandText & " VALUES " Dim i As Integer i = 0 While i <= 100 If Not (dr_sei.Read) Then sql.CommandText = sql.CommandText & "('" & dr_sei("codigo") & "'" Dim NOME As String = Replace(dr_sei("NOME"), "'", " ") sql.CommandText = sql.CommandText & ",'" & NOME & "'" Dim sigla As String = "NA" sql.CommandText = sql.CommandText & ",'" & sigla & "'" Dim temp_dtmat As Array = Split(dr_sei("dtmat"), "/") Dim dia_mat As String = temp_dtmat(0) Dim mes_mat As String = temp_dtmat(1) Dim ano_mat As String = temp_dtmat(2) Dim dtmat As String = ano_mat & "-" & mes_mat & "-" & dia_mat sql.CommandText = sql.CommandText & ",'" & dtmat & "'" Dim temp_dt As Array = Split(dr_sei("data"), "/") Dim Data As String If Not dr_sei("data") = "null" Then Dim dia As String = temp_dt(0) Dim mes As String = temp_dt(1) Dim ano As String = temp_dt(2) Data = ano & "-" & mes & "-" & dia Else Data = Year(Now()) & "-" & Month(Now()) & "-" & Day(Now()) End If sql.CommandText = sql.CommandText & ",'" & Data & "'" sql.CommandText = sql.CommandText & "," & dr_sei("diapgto") If i = 100 Then sql.CommandText = sql.CommandText & ",'" & dr_sei("se_tipo_diapgto") & "')" Else sql.CommandText = sql.CommandText & ",'" & dr_sei("se_tipo_diapgto") & "')," End If End If i = i + 1 k = k + 1 [b] If Not (dr_sei.Read) Then aluno.movenext() Else sql = Left(sql, (Len(sql) - 1)) dbAlunosRemoto.execute(sql) HORA_FIM = Now()[/b] mensagem = "TOTAL DE REGISTROS ENCONTRADOS:" & TOTAL_REGISTROS & "<BR>" mensagem = mensagem & "TOTAL DE REGISTROS TRANSMITIDOS:" & (k - 1) & "<BR>" mensagem = mensagem & "HORA INICIO:" & hora_inicio & "<BR>" mensagem = mensagem & "HORA FIM:" & HORA_FIM & "<BR>" 'Call manda_email(mensagem) Response.Write(mensagem) Response.End() End If End While dbAlunosRemoto.execute(sql) 'Response.Write(SQL & "<br>") 'response.end j = j + 1 End While HORA_FIM = "-" & Now() MENSAGEM = "TOTAL DE REGISTROS ENCONTRADOS:" & TOTAL_REGISTROS & "<BR>" MENSAGEM = MENSAGEM & "TOTAL DE REGISTROS TRANSMITIDOS:" & (k - 1) & "<BR>" MENSAGEM = MENSAGEM & "HORA INICIO:" & hora_inicio & "<BR>" MENSAGEM = MENSAGEM & "HORA FIM:" & HORA_FIM & "<BR>" 'Call manda_email(mensagem) Response.Write(mensagem) Response.End() sql.ExecuteNonQuery() conweb.Close() End Sub Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Março 23, 2009 Cintia seu primeiro bloco ja esta errado: consei.Open() com_sql_temp.Connection = consei com_sql_temp.CommandText = "SELECT * FROM tabela2 WHERE [aass]= '20082' or [aass] = '20091' " dr_sei = com_sql_temp.ExecuteReader dr_sei.Read() consei.Close() Quando você da um close no consei, automaticamente você fecha o dr_sei, você tem que usa-lo antes de fechar a conexão. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 2, 2009 eu corrigi isso, mas to com problema no loop para fazer insert ele n esta pegando os valores tah dando erro: Incorrect syntax near 'VALUES'. alguem pode me dar um help preciso resolver isso logo Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Abril 2, 2009 cintiadel, use parâmetros, vai ficar muito melhor visualmente. Aqui tem um exemplo de INSERT com parâmetros. http://www.dotnetmaniacs.com.br/dotnetmani...px?ArticleId=14 Para resolver seu problema, coloque um breakpoint na linha sql.ExecuteNonQuery()E veja qual o comando SQL que ele está tentando executar, assim você pode achar o erro no código. Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 2, 2009 cintiadel, use parâmetros, vai ficar muito melhor visualmente. Aqui tem um exemplo de INSERT com parâmetros. http://www.dotnetmaniacs.com.br/dotnetmani...px?ArticleId=14 Para resolver seu problema, coloque um breakpoint na linha sql.ExecuteNonQuery()E veja qual o comando SQL que ele está tentando executar, assim você pode achar o erro no código. eu coloquei ele mostra o insert mas n pega os values Compartilhar este post Link para o post Compartilhar em outros sites
cintiadel 0 Denunciar post Postado Abril 7, 2009 cintiadel, use parâmetros, vai ficar muito melhor visualmente. Aqui tem um exemplo de INSERT com parâmetros. http://www.dotnetmaniacs.com.br/dotnetmani...px?ArticleId=14 Para resolver seu problema, coloque um breakpoint na linha sql.ExecuteNonQuery()E veja qual o comando SQL que ele está tentando executar, assim você pode achar o erro no código. ele esta pegando o insert assim: INSERT INTO tabel2(codigo,nome,sigla,sit,local1,bairro,cidade,estado,CEP,fone,fone1,fax,UnEsCrS e,es_codigo,cr_codigo, cr_aass,serie,turma,aass,dtmat,sexo,estc,data,nchamada,CPF,sitcli,fase,sitfase,P roxFase,RecebeCarne,cr_codigon,es_codigoa,cr_codigoa,seriea,turmaa, aassa,sitfasea,nrep,classificacao,email,participacao,plano,se_codigo,diapgto,se_ tipo_diapgto) VALUESou seja ele n tah pegando os parametros pra jogar nos values, será que pode dar uma olhada na ultima postagem do codigo Compartilhar este post Link para o post Compartilhar em outros sites