GRAVANDO DADOS EM DUPLICIDADE NO BANCO

ALVAROVB2009 25/01/2010 11:49:50
#332782
Galera estou com um problema, ao incluir um registro, o código incluso esta sendo se duplicando sózinho e no código teoricamente não tem como acontcer essa duplicação.
O cliente gera um documento, o sistema verifica qual é o último código e soma mais um ao adicionar, até ai td bem.
O problema é que o sistema esta duplicando as informações, porém o código chave não se duplica, resumindo ele gera dois documentos identicos porém com código diferente.
Obs: Não é toda vez que ele faz isso, as vezes ele gera 3, 4 documentos e algumas vezes não gera duplicidade

Seguem as telas de alguns exemplos e o código




<%@LANGUAGE=[Ô]VBSCRIPT[Ô] CODEPAGE=[Ô]1252[Ô]%>
<%if session([Ô]emisstit[Ô]) then%>
<%Server.ScriptTimeout = 3600%>
<!--#include file=[Ô]Connections/graficos.asp[Ô] -->
<%
session([Ô]valor[Ô])=request.form([Ô]valor[Ô])
session([Ô]codEmpr[Ô])=request.form([Ô]codEmpr[Ô])

session([Ô]associativo[Ô])=request.form([Ô]associativo[Ô])
if instr(request.form([Ô]valor[Ô]),[Ô].[Ô])<>0 and instr(request.form([Ô]valor[Ô]),[Ô],[Ô])<>0 then
session([Ô]valor[Ô])=replace(replace(request.form([Ô]valor[Ô]),[Ô].[Ô],[Ô][Ô]),[Ô],[Ô],[Ô].[Ô])
else
if instr(request.form([Ô]valor[Ô]),[Ô].[Ô])<>0 then
session([Ô]valor[Ô])=request.form([Ô]valor[Ô])
else
if instr(request.form([Ô]valor[Ô]),[Ô],[Ô])<>0 then
session([Ô]valor[Ô])=replace(request.form([Ô]valor[Ô]),[Ô],[Ô],[Ô].[Ô])
end if
end if
end if
session([Ô]ref[Ô])=request.form([Ô]ref[Ô])


%>
<%if request.form([Ô]codEmpr[Ô])<>[Ô][Ô] or request.form([Ô]todos[Ô])=[Ô]1[Ô] then

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables([Ô]SCRIPT_NAME[Ô]))
If (Request.QueryString <> [Ô][Ô]) Then
MM_editAction = MM_editAction & [Ô]?[Ô] & Server.HTMLEncode(Request.QueryString)
End If

MM_abortEdit = false

MM_editQuery = [Ô][Ô]
%>
<%
[ô] *** Insert Record: set variables

If (CStr(Request([Ô]MM_insert[Ô])) = [Ô]form1[Ô]) Then

MM_editConnection = MM_graficos_STRING
MM_editTable = [Ô]tbTitulos[Ô]
MM_editRedirectUrl = [Ô]frametit.htm[Ô]
MM_fieldsStr = [Ô]codCedente|value|codEmpr|value|associativo|value|ref|value[Ô]
MM_columnsStr = [Ô]codCedente|none,none,NULL|codEmpr|none,none,NULL|associativo|none,none,NULL|ref|[ô],none,[ô][ô][Ô]

[ô] create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, [Ô]|[Ô])
MM_columns = Split(MM_columnsStr, [Ô]|[Ô])

[ô] set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

[ô] append the query string to the redirect URL
If (MM_editRedirectUrl <> [Ô][Ô] And Request.QueryString <> [Ô][Ô]) Then
If (InStr(1, MM_editRedirectUrl, [Ô]?[Ô], vbTextCompare) = 0 And Request.QueryString <> [Ô][Ô]) Then
MM_editRedirectUrl = MM_editRedirectUrl & [Ô]?[Ô] & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & [Ô]&[Ô] & Request.QueryString
End If
End If

End If
%>
<%
[ô] *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request([Ô]MM_insert[Ô])) <> [Ô][Ô]) Then

[ô] create the sql insert statement
MM_tableValues = [Ô][Ô]
MM_dbValues = [Ô][Ô]
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),[Ô],[Ô])
MM_delim = MM_typeArray(0)
If (MM_delim = [Ô]none[Ô]) Then MM_delim = [Ô][Ô]
MM_altVal = MM_typeArray(1)
If (MM_altVal = [Ô]none[Ô]) Then MM_altVal = [Ô][Ô]
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = [Ô]none[Ô]) Then MM_emptyVal = [Ô][Ô]
If (MM_formVal = [Ô][Ô]) Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> [Ô][Ô]) Then
MM_formVal = MM_altVal
ElseIf (MM_delim = [Ô][ô][Ô]) Then [ô] escape quotes
MM_formVal = [Ô][ô][Ô] & Replace(MM_formVal,[Ô][ô][Ô],[Ô][ô][ô][Ô]) & [Ô][ô][Ô]
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & [Ô],[Ô]
MM_dbValues = MM_dbValues & [Ô],[Ô]
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next


If (Not MM_abortEdit) Then
if request.form([Ô]associativo[Ô])=0 then
dt=10
else
dt=7
end if

if request.Form([Ô]todos[Ô])<>[Ô]1[Ô] then
[ô] execute the insert
Set nn = Server.CreateObject([Ô]ADODB.Recordset[Ô])
nn.ActiveConnection = MM_graficos_STRING
nn.Source = [Ô]SELECT * FROM nn order by cod_nn desc[Ô]
nn.CursorType = 0
nn.CursorLocation = 2
nn.LockType = 1
nn.Open()
num=cint(nn([Ô]nn_atual[Ô]))+1
t=len(cstr(num))
[ô]response.write(t&[Ô]<br>[Ô])
[ô]response.write(string(5,[Ô]0[Ô])&[Ô]<br>[Ô])
num2 = string(6-t,[Ô]0[Ô])&num
[ô]response.write(num2&[Ô]<br>[Ô])
MM_editQuery=[Ô]insert into nn (nn_atual,nn_cliente,nn_data)values([ô][Ô]&num2&[Ô][ô],[ô][Ô]&nn([Ô]nn_cliente[Ô])&[Ô][ô],[ô][Ô]&year(date())&[Ô]-[Ô]&month(date())&[Ô]-[Ô]&day(date())&[Ô][ô])[Ô]
SET UPDT1 = Server.CreateObject([Ô]ADODB.Command[Ô])
UPDT1.ActiveConnection = MM_editConnection
UPDT1.CommandText = MM_editQuery
UPDT1.Execute
[ô]response.write(MM_editQuery&[Ô]<br>[Ô])
UPDT1.ActiveConnection.Close

if request.form([Ô]associativo[Ô])=1 then
dt=10

if day(date()) >=1 and day(date())<=10 OR month(date()) = 1 and day(date()) >=1 and day(date())<=12 then
mon=month(date())
yer=year(date())
else
mon=month(date())+1
if mon = 13 then
mon = 1
if month(date()) = 12 Then
yer=year(date())+1
Else
yer = year(date())
End If
else
yer=year(date())
end if

end if

else
dt=7

if request.Form([Ô]ref[Ô]) = 5 then
mon=6
yer=year(date())
elseif request.Form([Ô]ref[Ô]) = 11 then
mon=12
yer=year(date())
elseif request.Form([Ô]ref[Ô]) = 12 then
mon=1
if month(date()) = 12 Then
yer=year(date())+1
Else
yer = year(date())
End If
else
If cdbl(day(date())) <= cdbl(dt) Then
mon = month(date())
Else
mon = month(date()) + 1
End If

if mon = 13 then
mon = 1
if month(date()) = 12 Then
yer=year(date()) + 1
else
yer=year(date())
End If
else
yer=year(date())
end if
end if

end if
Set MM_editCmd = Server.CreateObject([Ô]ADODB.Command[Ô])
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = [Ô]insert into [Ô] & MM_editTable & [Ô] ([Ô] & MM_tableValues & [Ô], nossonumero,dtemissao,dtvencimento,valor) values ([Ô] & MM_dbValues & [Ô],[ô][Ô]&nn([Ô]nn_cliente[Ô])&nn([Ô]nn_atual[Ô])&[Ô][ô],[ô][Ô]&year(date())&[Ô]-[Ô]&month(date())&[Ô]-[Ô]&day(date())&[Ô][ô],[ô][Ô]&yer&[Ô]-[Ô]&mon&[Ô]-[Ô]&dt&[Ô][ô],[Ô]&session([Ô]valor[Ô])&[Ô])[Ô]
MM_editCmd.Execute
[ô]response.write(MM_editCmd.CommandText )
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> [Ô][Ô]) Then
Response.Redirect(MM_editRedirectUrl)
End If
else
session([Ô]todos[Ô])=true
Set empr = Server.CreateObject([Ô]ADODB.Recordset[Ô])
empr.ActiveConnection = MM_graficos_STRING
empr.Source = [Ô]SELECT * FROM TbEmpresas order by codEmpr[Ô]
empr.CursorType = 0
empr.CursorLocation = 2
empr.LockType = 1
empr.Open()

empr_numRows = 0

if request.form([Ô]associativo[Ô])=1 then
dt=10

if day(date()) >=1 and day(date())<=10 then
mon=month(date())
yer=year(date())
else
mon=month(date())+1
if mon = 13 then
mon = 1
yer=year(date())+1
else
yer=year(date())
end if
end if

else
dt=7

if request.Form([Ô]ref[Ô]) = 5 then
mon=6
yer=year(date())
elseif request.Form([Ô]ref[Ô]) = 11 then
mon=12
yer=year(date())
elseif request.Form([Ô]ref[Ô]) = 12 then
mon=1
yer=year(date())+1
else
mon=month(date())+1

if mon = 13 then
mon = 1
yer=year(date())+1
else
yer=year(date())
end if
end if
end if
do while not empr.eof
Set nn = Server.CreateObject([Ô]ADODB.Recordset[Ô])
nn.ActiveConnection = MM_graficos_STRING
nn.Source = [Ô]SELECT * FROM nn order by cod_nn desc[Ô]
nn.CursorType = 0
nn.CursorLocation = 2
nn.LockType = 1
nn.Open()
num=cint(nn([Ô]nn_atual[Ô]))+1
t=len(cstr(num))
num2 = string(6-t,[Ô]0[Ô])&num
MM_editQuery=[Ô]insert into nn (nn_atual,nn_cliente,nn_data)values([ô][Ô]&num2&[Ô][ô],[ô][Ô]&nn([Ô]nn_cliente[Ô])&[Ô][ô],[ô][Ô]&year(date())&[Ô]-[Ô]&month(date())&[Ô]-[Ô]&day(date())&[Ô][ô])[Ô]
SET UPDT1 = Server.CreateObject([Ô]ADODB.Command[Ô])
UPDT1.ActiveConnection = MM_editConnection
UPDT1.CommandText = MM_editQuery
UPDT1.Execute
UPDT1.ActiveConnection.Close

If request.form([Ô]valor[Ô]) <> [Ô][Ô] Then
valor = replace(replace(request.form([Ô]valor[Ô]),[Ô].[Ô],[Ô][Ô]),[Ô],[Ô],[Ô].[Ô])
Else
valor = [Ô]0[Ô]
End If

Set MM_editCmd = Server.CreateObject([Ô]ADODB.Command[Ô])

MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = [Ô]insert into tbtitulos (codCedente,codEmpr,valor,associativo,ref,nossonumero,dtemissao,dtvencimento) values ([Ô] &_
request.form([Ô]codcedente[Ô]) & [Ô],[Ô] & empr([Ô]codEmpr[Ô]) & [Ô],[Ô] & valor & [Ô],[Ô] & request.form([Ô]associativo[Ô]) & [Ô],[ô][Ô] & request.form([Ô]ref[Ô]) & [Ô][ô],[ô][Ô]&nn([Ô]nn_cliente[Ô])&nn([Ô]nn_atual[Ô])&[Ô][ô],[ô][Ô]&year(date())&[Ô]-[Ô]&month(date())&[Ô]-[Ô]&day(date())&[Ô][ô],[ô][Ô]&yer&[Ô]-[Ô]&mon&[Ô]-[Ô]&dt&[Ô][ô])[Ô]
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
empr.movenext
loop

If (MM_editRedirectUrl <> [Ô][Ô]) Then
Response.Redirect(MM_editRedirectUrl)
End If
End if
End If
End If
End If

if request.form([Ô]cnpj[Ô])<>[Ô][Ô] or request.QueryString([Ô]tit[Ô])<>[Ô]novo[Ô] then
session([Ô]cnpj[Ô])=request.form([Ô]cnpj[Ô])

Set cliente2 = Server.CreateObject([Ô]ADODB.Recordset[Ô])
cliente2.ActiveConnection = MM_graficos_STRING
cliente2.Source = [Ô]SELECT * FROM TbEmpresas where nomeEmpr LIKE [ô]%[Ô] &session([Ô]cnpj[Ô])&[Ô]%[ô] or docEmpr=[ô][Ô]&session([Ô]cnpj[Ô])&[Ô][ô][Ô]
cliente2.CursorType = 0
cliente2.CursorLocation = 2
cliente2.LockType = 1
cliente2.Open()
....
ALVAROVB2009 25/01/2010 11:51:17
#332784
Término do código
cliente2_numRows = 0
session([Ô]empr1[Ô])=cliente2([Ô]codEmpr[Ô])
session([Ô]nomeempr[Ô])=cliente2([Ô]nomeEmpr[Ô])
end if
%>
<%
Dim cedente
Dim cedente_numRows

Set cedente = Server.CreateObject([Ô]ADODB.Recordset[Ô])
cedente.ActiveConnection = MM_graficos_STRING
cedente.Source = [Ô]SELECT * FROM tbCedentes[Ô]
cedente.CursorType = 0
cedente.CursorLocation = 2
cedente.LockType = 1
cedente.Open()

cedente_numRows = 0
%>
<%
Dim tit
Dim tit_numRows

Set tit = Server.CreateObject([Ô]ADODB.Recordset[Ô])
tit.ActiveConnection = MM_graficos_STRING
tit.Source = [Ô]SELECT * FROM tbtitulos order by codtit desc[Ô]
tit.CursorType = 0
tit.CursorLocation = 2
tit.LockType = 1
tit.Open()
if not tit.eof then
session([Ô]codtit[Ô])=tit([Ô]codtit[Ô])+1
end if
tit_numRows = 0
%>

<!DOCTYPE HTML PUBLIC [Ô]-//W3C//DTD HTML 4.01 Transitional//EN[Ô] [Ô]http://www.w3.org/TR/html4/loose.dtd[Ô]>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv=[Ô]Content-Type[Ô] content=[Ô]text/html; charset=iso-8859-1[Ô]>
<link href=[Ô]estilos2.css[Ô] rel=[Ô]stylesheet[Ô] type=[Ô]text/css[Ô]>
<style type=[Ô]text/css[Ô]>
<!--
.style1 {font-weight: bold}
-->
</style>
</head>

<body>
<form method=[Ô]POST[Ô] action=[Ô]<%=MM_editAction%>[Ô] name=[Ô]form1[Ô]>
<table width=[Ô]500[Ô] >
<tr valign=[Ô]baseline[Ô]>
<td colspan=[Ô]2[Ô] class=[Ô]texto14azul[Ô]><strong>Emissão de Títulos</strong></td>
</tr>
<tr valign=[Ô]baseline[Ô]>
<td class=[Ô]texto11preto[Ô]> </td>
<td> </td>
</tr>
<tr valign=[Ô]baseline[Ô]>
<td width=[Ô]120[Ô] class=[Ô]texto11preto[Ô]><div align=[Ô]left[Ô]></div></td>
<td width=[Ô]368[Ô]><div align=[Ô]left[Ô] class=[Ô]style3[Ô]> </div></td>
</tr>
<tr valign=[Ô]baseline[Ô]>
<td align=[Ô]right[Ô] nowrap class=[Ô]texto11preto[Ô]><div align=[Ô]left[Ô] class=[Ô]style3[Ô]><strong>CNPJ
ou RazãoSocial:</strong></div></td>
<td class=[Ô]texto11preto[Ô]><div align=[Ô]left[Ô] class=[Ô]style3[Ô]> <span class=[Ô]texto12Bold[Ô]>
<input type=hidden value=<%=session([Ô]empr1[Ô])%> name=codEmpr>
<%=session([Ô]nomeempr[Ô])%></span><span class=[Ô]style2[Ô]><span class=[Ô]style1[Ô]>
<input name=[Ô]cnpj[Ô] type=[Ô]text[Ô] id=[Ô]cnpj[Ô]>
<input name=[Ô]image3[Ô] type=[Ô]image[Ô] onClick=[Ô]javascript:submit()[Ô] src=[Ô]imagens/bt/busca.jpg[Ô] width=[Ô]21[Ô] height=[Ô]21[Ô]>
<br>
<input name=[Ô]todos[Ô] type=[Ô]checkbox[Ô] id=[Ô]todos[Ô] value=[Ô]1[Ô]>
todas as empresas </span></span></div></td>
</tr>
<tr valign=[Ô]baseline[Ô]>
<td class=[Ô]texto11preto[Ô]><div align=[Ô]left[Ô] class=[Ô]style3[Ô]><strong>Guia:</strong></div></td>
<td><div align=[Ô]left[Ô] class=[Ô]texto11preto[Ô]>
<input name=[Ô]associativo[Ô] type=[Ô]radio[Ô] value=[Ô]0[Ô] checked <%if session([Ô]associativo[Ô])=[Ô]0[Ô] THEN%> <%end if%> >
Assistêncial
<input name=[Ô]associativo[Ô] type=[Ô]radio[Ô] value=[Ô]1[Ô] <%if session([Ô]associativo[Ô])=[Ô]1[Ô] THEN%> checked <%end if%> >
Associativa</div></td>
</tr>
<tr valign=[Ô]baseline[Ô]>
<td align=[Ô]right[Ô] nowrap class=[Ô]texto11preto[Ô]><div align=[Ô]left[Ô] class=[Ô]style3[Ô]><strong>Valor:</strong></div></td>
<td><div align=[Ô]left[Ô] class=[Ô]style3[Ô]>
<input name=[Ô]valor[Ô] type=[Ô]text[Ô] class=[Ô]combo[Ô] value=[Ô]<%=session([Ô]valor[Ô])%>[Ô] size=[Ô]32[Ô]>
<span class=[Ô]texto11preto[Ô]>utilize "." para separar decimais
se tiver </span></div></td>
</tr>
<tr valign=[Ô]baseline[Ô]>
<td height=[Ô]22[Ô] class=[Ô]texto11preto[Ô]><div align=[Ô]left[Ô] class=[Ô]style3[Ô]><strong>Mês
de Referência:</strong></div></td>
<td><div align=[Ô]left[Ô] class=[Ô]style3[Ô]>
<select name=[Ô]ref[Ô] id=[Ô]ref[Ô]>
<option value=[Ô]01[Ô] <%if session([Ô]ref[Ô])=[Ô]01[Ô] then %>Selected<%end if%>>Janeiro</option>
<option value=[Ô]02[Ô] <%if session([Ô]ref[Ô])=[Ô]02[Ô] then %>Selected<%end if%>>Fevereiro</option>
<option value=[Ô]03[Ô] <%if session([Ô]ref[Ô])=[Ô]03[Ô] then %>Selected<%end if%>>Março</option>
<option value=[Ô]04[Ô] <%if session([Ô]ref[Ô])=[Ô]04[Ô] then %>Selected<%end if%>>Abril</option>
<option value=[Ô]05[Ô] <%if session([Ô]ref[Ô])=[Ô]05[Ô] then %>Selected<%end if%>>Maio</option>
<option value=[Ô]06[Ô] <%if session([Ô]ref[Ô])=[Ô]06[Ô] then %>Selected<%end if%>>Junho</option>
<option value=[Ô]07[Ô] <%if session([Ô]ref[Ô])=[Ô]07[Ô] then %>Selected<%end if%>>Julho</option>
<option value=[Ô]08[Ô] <%if session([Ô]ref[Ô])=[Ô]08[Ô] then %>Selected<%end if%>>Agosto</option>
<option value=[Ô]09[Ô] <%if session([Ô]ref[Ô])=[Ô]09[Ô] then %>Selected<%end if%>>Setembro</option>
<option value=[Ô]10[Ô] <%if session([Ô]ref[Ô])=[Ô]10[Ô] then %>Selected<%end if%>>Outubro</option>
<option value=[Ô]11[Ô] <%if session([Ô]ref[Ô])=[Ô]11[Ô] then %>Selected<%end if%>>Novembro</option>
<option value=[Ô]12[Ô] <%if session([Ô]ref[Ô])=[Ô]12[Ô] then %>Selected<%end if%>>Dezembro</option>
</select>
</div></td>
</tr>
<tr valign=[Ô]baseline[Ô]>
<td colspan=[Ô]2[Ô] align=[Ô]right[Ô] nowrap> </td>
</tr>
<tr valign=[Ô]baseline[Ô]>
<td colspan=[Ô]2[Ô] align=[Ô]right[Ô] nowrap><div align=[Ô]center[Ô]> <span class=[Ô]style3[Ô]>
<span class=[Ô]style2[Ô]><span class=[Ô]style1[Ô]>
<input type=hidden name=[Ô]codCedente[Ô] value=<%=(cedente.Fields.Item([Ô]codCedente[Ô]).Value)%>>
</span></span> </span>
<input type=[Ô]submit[Ô] class=[Ô]style1[Ô] name=[Ô]Submit3[Ô] value=[Ô] Gravar [Ô] style=[Ô]COLOR: #000[Ô]>
</div></td>
</tr>
</table>
<input type=[Ô]hidden[Ô] name=[Ô]MM_insert[Ô] value=[Ô]form1[Ô]>
</form>
<p> </p>
</body>
</html>
<%
cedente.Close()
Set cedente = Nothing
%>
<%else
response.redirect([Ô]logout.asp[Ô])
end if%>

Agradeço a todos que puderem me ajuram com esse problemão

Abraço
TECLA 25/01/2010 13:41:30
#332793
Seria mais aproveitável se destacasse o TRECHO DO CÓDIGO onde é feito o INSERT.
ALVAROVB2009 25/01/2010 14:07:58
#332794
Ok, esta separado a parte de inclusão
Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables([Ô]SCRIPT_NAME[Ô]))
If (Request.QueryString <> [Ô][Ô]) Then
MM_editAction = MM_editAction & [Ô]?[Ô] & Server.HTMLEncode(Request.QueryString)
End If

MM_abortEdit = false

MM_editQuery = [Ô][Ô]
%>
<%
[ô] *** Insert Record: set variables

If (CStr(Request([Ô]MM_insert[Ô])) = [Ô]form1[Ô]) Then

MM_editConnection = MM_graficos_STRING
MM_editTable = [Ô]tbTitulos[Ô]
MM_editRedirectUrl = [Ô]frametit.htm[Ô]
MM_fieldsStr = [Ô]codCedente|value|codEmpr|value|associativo|value|ref|value[Ô]
MM_columnsStr = [Ô]codCedente|none,none,NULL|codEmpr|none,none,NULL|associativo|none,none,NULL|ref|[ô],none,[ô][ô][Ô]

[ô] create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, [Ô]|[Ô])
MM_columns = Split(MM_columnsStr, [Ô]|[Ô])

[ô] set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

[ô] append the query string to the redirect URL
If (MM_editRedirectUrl <> [Ô][Ô] And Request.QueryString <> [Ô][Ô]) Then
If (InStr(1, MM_editRedirectUrl, [Ô]?[Ô], vbTextCompare) = 0 And Request.QueryString <> [Ô][Ô]) Then
MM_editRedirectUrl = MM_editRedirectUrl & [Ô]?[Ô] & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & [Ô]&[Ô] & Request.QueryString
End If
End If

End If
%>
<%
[ô] *** Insert Record: construct a sql insert statement and execute it

Dim MM_tableValues
Dim MM_dbValues

If (CStr(Request([Ô]MM_insert[Ô])) <> [Ô][Ô]) Then

[ô] create the sql insert statement
MM_tableValues = [Ô][Ô]
MM_dbValues = [Ô][Ô]
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),[Ô],[Ô])
MM_delim = MM_typeArray(0)
If (MM_delim = [Ô]none[Ô]) Then MM_delim = [Ô][Ô]
MM_altVal = MM_typeArray(1)
If (MM_altVal = [Ô]none[Ô]) Then MM_altVal = [Ô][Ô]
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = [Ô]none[Ô]) Then MM_emptyVal = [Ô][Ô]
If (MM_formVal = [Ô][Ô]) Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> [Ô][Ô]) Then
MM_formVal = MM_altVal
ElseIf (MM_delim = [Ô][ô][Ô]) Then [ô] escape quotes
MM_formVal = [Ô][ô][Ô] & Replace(MM_formVal,[Ô][ô][Ô],[Ô][ô][ô][Ô]) & [Ô][ô][Ô]
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & [Ô],[Ô]
MM_dbValues = MM_dbValues & [Ô],[Ô]
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next


If (Not MM_abortEdit) Then
if request.form([Ô]associativo[Ô])=0 then
dt=10
else
dt=7
end if

if request.Form([Ô]todos[Ô])<>[Ô]1[Ô] then
[ô] execute the insert
Set nn = Server.CreateObject([Ô]ADODB.Recordset[Ô])
nn.ActiveConnection = MM_graficos_STRING
nn.Source = [Ô]SELECT * FROM nn order by cod_nn desc[Ô]
nn.CursorType = 0
nn.CursorLocation = 2
nn.LockType = 1
nn.Open()
num=cint(nn([Ô]nn_atual[Ô]))+1
t=len(cstr(num))
[ô]response.write(t&[Ô]<br>[Ô])
[ô]response.write(string(5,[Ô]0[Ô])&[Ô]<br>[Ô])
num2 = string(6-t,[Ô]0[Ô])&num
[ô]response.write(num2&[Ô]<br>[Ô])
MM_editQuery=[Ô]insert into nn (nn_atual,nn_cliente,nn_data)values([ô][Ô]&num2&[Ô][ô],[ô][Ô]&nn([Ô]nn_cliente[Ô])&[Ô][ô],[ô][Ô]&year(date())&[Ô]-[Ô]&month(date())&[Ô]-[Ô]&day(date())&[Ô][ô])[Ô]
SET UPDT1 = Server.CreateObject([Ô]ADODB.Command[Ô])
UPDT1.ActiveConnection = MM_editConnection
UPDT1.CommandText = MM_editQuery
UPDT1.Execute
[ô]response.write(MM_editQuery&[Ô]<br>[Ô])
UPDT1.ActiveConnection.Close

if request.form([Ô]associativo[Ô])=1 then
dt=10

if day(date()) >=1 and day(date())<=10 OR month(date()) = 1 and day(date()) >=1 and day(date())<=12 then
mon=month(date())
yer=year(date())
else
mon=month(date())+1
if mon = 13 then
mon = 1
if month(date()) = 12 Then
yer=year(date())+1
Else
yer = year(date())
End If
else
yer=year(date())
end if

end if

else
dt=7

if request.Form([Ô]ref[Ô]) = 5 then
mon=6
yer=year(date())
elseif request.Form([Ô]ref[Ô]) = 11 then
mon=12
yer=year(date())
elseif request.Form([Ô]ref[Ô]) = 12 then
mon=1
if month(date()) = 12 Then
yer=year(date())+1
Else
yer = year(date())
End If
else
If cdbl(day(date())) <= cdbl(dt) Then
mon = month(date())
Else
mon = month(date()) + 1
End If

if mon = 13 then
mon = 1
if month(date()) = 12 Then
yer=year(date()) + 1
else
yer=year(date())
End If
else
yer=year(date())
end if
end if

end if
Set MM_editCmd = Server.CreateObject([Ô]ADODB.Command[Ô])
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = [Ô]insert into [Ô] & MM_editTable & [Ô] ([Ô] & MM_tableValues & [Ô], nossonumero,dtemissao,dtvencimento,valor) values ([Ô] & MM_dbValues & [Ô],[ô][Ô]&nn([Ô]nn_cliente[Ô])&nn([Ô]nn_atual[Ô])&[Ô][ô],[ô][Ô]&year(date())&[Ô]-[Ô]&month(date())&[Ô]-[Ô]&day(date())&[Ô][ô],[ô][Ô]&yer&[Ô]-[Ô]&mon&[Ô]-[Ô]&dt&[Ô][ô],[Ô]&session([Ô]valor[Ô])&[Ô])[Ô]
MM_editCmd.Execute
[ô]response.write(MM_editCmd.CommandText )
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> [Ô][Ô]) Then
Response.Redirect(MM_editRedirectUrl)
End If
else
session([Ô]todos[Ô])=true
Set empr = Server.CreateObject([Ô]ADODB.Recordset[Ô])
empr.ActiveConnection = MM_graficos_STRING
empr.Source = [Ô]SELECT * FROM TbEmpresas order by codEmpr[Ô]
empr.CursorType = 0
empr.CursorLocation = 2
empr.LockType = 1
empr.Open()

empr_numRows = 0

if request.form([Ô]associativo[Ô])=1 then
dt=10

if day(date()) >=1 and day(date())<=10 then
mon=month(date())
yer=year(date())
else
mon=month(date())+1
if mon = 13 then
mon = 1
yer=year(date())+1
else
yer=year(date())
end if
end if

else
dt=7

if request.Form([Ô]ref[Ô]) = 5 then
mon=6
yer=year(date())
elseif request.Form([Ô]ref[Ô]) = 11 then
mon=12
yer=year(date())
elseif request.Form([Ô]ref[Ô]) = 12 then
mon=1
yer=year(date())+1
else
mon=month(date())+1

if mon = 13 then
mon = 1
yer=year(date())+1
else
yer=year(date())
end if
end if
end if
do while not empr.eof
Set nn = Server.CreateObject([Ô]ADODB.Recordset[Ô])
nn.ActiveConnection = MM_graficos_STRING
nn.Source = [Ô]SELECT * FROM nn order by cod_nn desc[Ô]
nn.CursorType = 0
nn.CursorLocation = 2
nn.LockType = 1
nn.Open()
num=cint(nn([Ô]nn_atual[Ô]))+1
t=len(cstr(num))
num2 = string(6-t,[Ô]0[Ô])&num
MM_editQuery=[Ô]insert into nn (nn_atual,nn_cliente,nn_data)values([ô][Ô]&num2&[Ô][ô],[ô][Ô]&nn([Ô]nn_cliente[Ô])&[Ô][ô],[ô][Ô]&year(date())&[Ô]-[Ô]&month(date())&[Ô]-[Ô]&day(date())&[Ô][ô])[Ô]
SET UPDT1 = Server.CreateObject([Ô]ADODB.Command[Ô])
UPDT1.ActiveConnection = MM_editConnection
UPDT1.CommandText = MM_editQuery
UPDT1.Execute
UPDT1.ActiveConnection.Close

If request.form([Ô]valor[Ô]) <> [Ô][Ô] Then
valor = replace(replace(request.form([Ô]valor[Ô]),[Ô].[Ô],[Ô][Ô]),[Ô],[Ô],[Ô].[Ô])
Else
valor = [Ô]0[Ô]
End If

Set MM_editCmd = Server.CreateObject([Ô]ADODB.Command[Ô])

MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = [Ô]insert into tbtitulos (codCedente,codEmpr,valor,associativo,ref,nossonumero,dtemissao,dtvencimento) values ([Ô] &_
request.form([Ô]codcedente[Ô]) & [Ô],[Ô] & empr([Ô]codEmpr[Ô]) & [Ô],[Ô] & valor & [Ô],[Ô] & request.form([Ô]associativo[Ô]) & [Ô],[ô][Ô] & request.form([Ô]ref[Ô]) & [Ô][ô],[ô][Ô]&nn([Ô]nn_cliente[Ô])&nn([Ô]nn_atual[Ô])&[Ô][ô],[ô][Ô]&year(date())&[Ô]-[Ô]&month(date())&[Ô]-[Ô]&day(date())&[Ô][ô],[ô][Ô]&yer&[Ô]-[Ô]&mon&[Ô]-[Ô]&dt&[Ô][ô])[Ô]
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
empr.movenext
loop

If (MM_editRedirectUrl <> [Ô][Ô]) Then
Response.Redirect(MM_editRedirectUrl)
End If
End if
End If
End If
End If
ALVAROVB2009 26/01/2010 11:07:20
#332860
Alguém ...
MARCOSLING 26/01/2010 16:45:41
#332891
Resposta escolhida
Será que a página não está sendo chamada mais de uma vez?
RICART 26/01/2010 21:42:04
#332905
Se vc está com dificuldade de identificar a ocorrência, vc pode verificar quais campos podem ser únicos e criar um índice. Tipo: NR DOCUMENTO, DATA, ou NR DOCUMENTO TIPO OPERAÇÃO. Se vc criar uma regra para que um conjunto de valores não possa se repetir (constraint), vc identificará o momento em que ocorrer essa exceção na sua rotina, ao mesmo tempo que vc garante que na sua tabela não haverá números repetidos. Nem sempre o campo chave significa que o registro corresponda a uma informação única na sua tabela, pois isso é relativo.
ALVAROVB2009 29/01/2010 19:04:49
#333205
RICART e MARCOSLING Obrigado pelo retorno

Ricart
Citação:

:
Será que a página não está sendo chamada mais de uma vez?



Infelizmente não, porque após incluir o documento, ele chama a tela que lista todos os documentos e também gerei um arquivo txt, com a rotina de inclusão monitorada e também não houve duplicação



Citação:

:
Se vc está com dificuldade de identificar a ocorrência, vc pode verificar quais campos podem ser únicos e criar um índice. Tipo: NR DOCUMENTO, DATA, ou NR DOCUMENTO TIPO OPERAÇÃO. Se vc criar uma regra para que um conjunto de valores não possa se repetir (constraint), vc identificará o momento em que ocorrer essa exceção na sua rotina, ao mesmo tempo que vc garante que na sua tabela não haverá números repetidos. Nem sempre o campo chave significa que o registro corresponda a uma informação única na sua tabela, pois isso é relativo.



Ricart essa é uma idéia que eu não tinha pensado ainda, más vc poderia me dar um ajuda como que posso criar, pois estou utilizando o mysql como banco e nas opções eu tenho apenas o create view

Os campos da tabela são -
codCedente,codEmpr,valor,associativo,ref,nossonumero,dtemissao,dtvencimento
Existe um CodTitulo, más como ele é autonumérico, não esta nesse insert

Agradeço a ajuda

Abraço a todos
ALVAROVB2009 01/02/2010 12:03:05
#333309
Alguém ...

Obs:Continuando as pesquisas para tentar montar essa constraint
ALVAROVB2009 03/03/2010 12:30:34
#335906
Ricart obrigado pela dica, fiz isso que vc falou e funcionou, acabou o erro de duplicidade

Vlw
ALVAROVB2009 29/03/2010 15:10:22
#338130
Galera reativei o tópico pois o problema voltou a acontecer e verificando o código, percebi que o que nosso amigo MARCOSLING esta acontecendo, ele esta chamando a página 2 vezes. Não consegui achar onde ele esta chamando a página pela segunda vez

Será que alguém pode me dar uma força
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas