Foros del Web » Programación para mayores de 30 ;) » Programación General »

Codigo ciclado

Estas en el tema de Codigo ciclado en el foro de Programación General en Foros del Web. Tengo una aplicacion hecha en visual basic..la cual exporta datos de una base de datos de progress a sql server..el problema es que me esta ...
  #1 (permalink)  
Antiguo 23/05/2012, 18:56
 
Fecha de Ingreso: junio-2011
Mensajes: 329
Antigüedad: 12 años, 11 meses
Puntos: 2
Codigo ciclado

Tengo una aplicacion hecha en visual basic..la cual exporta datos de una base de datos de progress a sql server..el problema es que me esta duplicado la informacion como si tuviera un ciclo indefinido..es decir tengo un rango de tiendas de la 1 a la 79 y debe de recorrerlo solo una vez , pero lo esta haciendo por lo menos 5 veces...alguna idea de por que este pasando esto...anexo codigo..saludos y gracias por sus respuestas


Sub compras(Fechac As String, Fechaf As String, sid As Integer)

Dim cn As Object
Dim con As Object
'Dim cfecha As Date


' crea un objeto Connection
Set cn = CreateObject("ADODB.Connection")
Set con = CreateObject("ADODB.Connection")

' IMPORTANTE: Cadena de conexión a usar
cn.ConnectionString = "Driver={Progress Openedge 10.1A Driver};DSN=PROGRESS;DB=pace;UID=sysprogress;PWD=p assword;HOST=192.168.10.6;PORT = 2580;"


con.ConnectionString = "Provider=SQLOLEDB;Data Source=" & _
"192.168.10.20; user id=sa; password=stm01;"

'Provider=SQLOLEDB;Initial Catalog=Inventarios;Data Source=" & _
' "192.168.10.3; user id=sa; password=3845;"

' verifica que los parámetros no estén vacios
supid = "ord_0." & """sup-id"""
origqty = "oritem_0." & """orig-qty"""

' fech = "Format(ord_0.cdate, " & """mm/dd/yyyy"")"


SQL = "SELECT ord_0.sid, ord_0.onum, " & supid & ", ord_0.cdate, ord_0.ctime, ord_0.posted, ord_0.comment, ord_0.completed, oritem_0.line, oritem_0.part, oritem_0.pack, oritem_0.pccost, oritem_0.pcost, inv_0.costave, " & origqty & ", oritem_0.totrec, " & origqty & "*oritem_0.pack AS 'PaqOrd', oritem_0.totrec*oritem_0.pack AS 'PaqRec' FROM PUB.inv inv_0, PUB.ord ord_0, PUB.oritem oritem_0 WHERE ord_0.sid = oritem_0.sid AND ord_0.onum = oritem_0.onum AND ((inv_0.sid=1) AND (inv_0.line=oritem_0.line) AND (inv_0.part=oritem_0.part) AND ord_0.posted >= {d '2012-01-01'} AND ord_0.posted <= {d '2012-01-31'} )"

' variable para al rec de ado
Dim rst As Object
Dim rs As Object

' abre la conexión a la base de datos
cn.Open
con.Open

'SQL.Connection = con


' crea un nuevo objeto recordset
Set rst = CreateObject("ADODB.Recordset")
Set rs = CreateObject("ADODB.Recordset")

' Ejecuta el sql para llenar el recordset
rst.Open SQL, cn
' variables para los indices de las filas y columnas
c = 0


' recorre todo el recordset hasta el final
Do While Not rst.EOF

sid = rst.Fields(c)
onum = rst.Fields(c + 1)
supid = rst.Fields(c + 2)
cfech = Format(rst.Fields(c + 3), "mm/dd/yyyy")
cfecha = "'" & cfech & "'"
ctime = rst.Fields(c + 4)
poste = Format(rst.Fields(c + 5), "mm/dd/yyyy")
posted = "'" & poste & "'"


comment = rst.Fields(c + 6)
comment = Replace(comment, "'", "''")

'comment = "intro"

complete = Format(rst.Fields(c + 7), "mm/dd/yyyy")
completed = "'" & complete & "'"
Line = rst.Fields(c + 8)
part = rst.Fields(c + 9)
pack = rst.Fields(c + 10)
pccost = rst.Fields(c + 11)
pcost = rst.Fields(c + 12)
costave = rst.Fields(c + 13)
origqty = rst.Fields(c + 14)
totrec = rst.Fields(c + 15)
PaqOrd = rst.Fields(c + 16)
PaqRec = rst.Fields(c + 17)
'QP = rst.Fields(c + 18)

SQ1 = "INSERT INTO [Compras].[dbo].[compras]([sid],[onum],[supid],[cdate],[ctime],[posted],[comment],[completed],[line],[part],[pack],[pccost],[pcost],[costave],[origqty],[totrec],[PaqOrd],[PaqRec]) Values (" & sid & ", " & onum & " ,'" & supid & "', " & cfecha & ", '" & ctime & "', " & posted & ",'" & comment & "', " & completed & ",'" & Line & "', '" & part & "', " & pack & ", " & pccost & ", " & pcost & ", " & costave & ", " & origqty & ", " & totrec & ", " & PaqOrd & ", " & PaqRec & ")"

'SQL1.ExecuteNonQuery , con
rs.Open SQ1, con
' Siguiente registro
rst.MoveNext

Loop
' cierra y descarga las referencias
On Error Resume Next
rst.Close
cn.Close
rs.Close
con.Close
Set cn = Nothing
Set rst = Nothing
Set con = Nothing
Set rs = Nothing

End Sub

Etiquetas: visual
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:19.