• Lunes 18 de Noviembre de 2024, 11:48

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - cristy

Páginas: [1]
1
Visual Basic 6.0 e inferiores / Re: Disculpen por favor .....
« en: Lunes 23 de Diciembre de 2002, 17:40 »
No queria volver a preguntar, una tontera pero se me escapa de las manos, saben estoy exportando datos a la base de datos, atraves de un archivo de texto los envio a una grilla y luego de la grilla los envio a  la base de datos atraves  de un cotrol de datos adodc,  pero me  no deja insertar los datos por que dice que la clave primaria esta violada, pero no es asi los datos no se encuentran en la base de datos, por ende no puede ser clave repetida, este problemita me tiene muy mal, no se que probar, he probado realizando el insert atraves de SQL PLUS
y los mismo datos los ingresa bien si ningun problema, he llegado apensar que es el control que me pertuba,  espero que alguien  que lea esto pueda ayudarme,  
la primera ves el error lo envia cuando pasa por el update y las veces posteriores los envia en addnew y el update
gracias (les envio el malogrado codigo)


Private Sub Co_Grabar_Click()
Dim salida1
Dim fs, f, ss
NombreAux = CD_Impo.FileTitle
nombre_archivo = NombreAux
NombreArch = Mid(NombreAux, 1, Len(NombreAux) - 4)
salida1 = 0
RUTA = Busca_Trayecto(BD_1)
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(nombre_archivo)
ss = UCase(f.Name) & " utiliza " & f.Size & " bytes."
bytearchivo = f.Size
tabla = C_Tablas.Text
separador = separa
pDecimal = pdeci
Dim filavar As Integer
Dim coluvar As Integer
Dim mensaje As String
Dim Typedato As String
ucontadoring = 0
If Len(tabla) = 0 Then
    MsgBox ("Ingrese un Nombre de Tabla")
Else
If Len(BD_1) = 0 Then
   MsgBox ("Ingrese el Nombre de Archivo a Exportar")
Else
NombreArch = Trim(NombreArch) + "_carga.err"
 Open NombreArch For Output As #2
  filavar = 1 + filini
    coluvar = 1
    Ado_Tabla.UserName = st_login
    Ado_Tabla.Password = st_passw
    Ado_Tabla.RecordSource = UCase(tabla)
    Ado_Tabla.Refresh
  Do While filavar - 1 < grilla.Rows - 1
      ucontadoring = ucontadoring + 1
      grilla.Row = filavar - 1
      On Error GoTo Error_Graba1
       Ado_Tabla.Recordset.AddNew
      Do While coluvar - 1 < grilla.Cols
         grilla.Col = coluvar - 1
         Typedato = (Ado_Tabla.Recordset.Fields(coluvar - 1).Type)
           If Typedato = "131" Then
              If grilla.Text = "" Then
                paso = 0
               Else
                paso = Trim(grilla.Text)
               End If
              Ado_Tabla.Recordset.Fields(coluvar - 1) = paso
           Else
              If grilla.Text = "" Then
                StDato = " "
               Else
                StDato = grilla.Text
               End If
              Ado_Tabla.Recordset.Fields(coluvar - 1) = StDato
           End If
        coluvar = coluvar + 1
      Loop
      On Error GoTo error_graba2
       Ado_Tabla.Recordset.Update
       coluvar = 1
       filavar = filavar + 1
      ucontadoring = ucontadoring + 1
  Loop
  salida1 = "Se Ingresaron " + CStr(filfin - ucontadorsal) + " de " + CStr(filfin) + ". Rechazados " + CStr(ucontadorsal) + " Registros"
  MsgBox ("Carga Finalizada" + Chr(13) + salida1)
 End If
 
End If
Close #2

Set fs = CreateObject("Scripting.FileSystemObject")
lugar = RUTA + "" + NombreArch
MiTamano = FileLen(lugar)
If MiTamano = 0 Then
    fs.DeleteFile (lugar)
End If

Exit Sub
Error_Graba1:
    des = Err.Description
Resume Next
error_graba2:
    des = Err.Description
    cerror = Err.Number
    ucontadorsal = ucontadorsal + 1
    Write #2, ucontadoring; des
Resume Next
End Sub

2
Visual Basic 6.0 e inferiores / Codigo
« en: Lunes 23 de Diciembre de 2002, 17:29 »
Si tenias toda la razon el problema era por otro lado intente insertar por el SQl Plus y no me dejo por un problema en un trigger  gracias

3
Visual Basic 6.0 e inferiores / triggers
« en: Viernes 20 de Diciembre de 2002, 19:42 »
hola a todos, tengo una consulta que elimina, pero me envia un error e un triggers que es para otra tabla este es el triggers y la tabla a eliminar se llama l_identi




TRIGGER "SONDAJES".mod_t_lycumo
AFTER INSERT OR UPDATE OR DELETE
ON T_LYCUMO
FOR EACH ROW
/*
TRIGGER diseñado para actualizar la tabla L_LYCUMO_COORD
cuando se modifica la tabla T_LYCUMO
DECLARE

CURSOR lista_sonda (cyac NUMBER,clab CHAR) IS
SELECT *
FROM t_identi
WHERE yacimiento=cyac
AND codlabor=clab
ORDER BY CODLABOR;
 
CURSOR lista_trayec(cyac NUMBER, clab CHAR) IS
SELECT *
FROM t_trayec
WHERE (yacimiento = cyac ) AND  
      (codlabor = clab);

CURSOR lista_lycumo(cyac NUMBER, clab CHAR, metini NUMBER, metfin NUMBER) IS
SELECT *
FROM t_lycumo
WHERE (yacimiento = cyac ) AND  
      (codlabor = clab) AND
      (metfinal>metini AND metfinal<=metfin);

l_s lista_sonda%ROWTYPE;
l_t lista_trayec%ROWTYPE;
l_cu lista_lycumo%ROWTYPE;

metini    NUMBER;
metfin    NUMBER;
metant   NUMBER;
x0        NUMBER;
y0        NUMBER;
z0        NUMBER;
x1        NUMBER;
y1        NUMBER;
z1        NUMBER;
xm        NUMBER;
ym        NUMBER;
zm        NUMBER;
rumb      NUMBER;
incl      NUMBER;
codigo_yac NUMBER;
codigo_labor VARCHAR2(8);
gr           NUMBER;
ind          NUMBER;


BEGIN

if (inserting) then
  codigo_yac:=:new.yacimiento;
  codigo_labor:=:new.codlabor;
end if;
if (updating) then
  codigo_yac:=:new.yacimiento;
  codigo_labor:=:new.codlabor;
  DELETE FROM L_LYCUMO_COORD
    WHERE yacimiento=:new.yacimiento AND codlabor=:new.codlabor;
end if;
if (deleting) then
  codigo_yac:=:old.yacimiento;
  codigo_labor:=:old.codlabor;
  DELETE FROM L_LYCUMO_COORD
    WHERE yacimiento=:old.yacimiento AND codlabor=:old.codlabor;
end if;

/*INICIO*/
  gr:=3.14159265359/180.0;
  OPEN lista_sonda(codigo_yac,codigo_labor);
  LOOP
    FETCH lista_sonda INTO l_s;
    EXIT WHEN lista_sonda%NOTFOUND;
    metini:=0;
    x0:=l_s.longitud;
    y0:=l_s.latitud;
    z0:=l_s.cota;
    OPEN lista_trayec(l_s.yacimiento,l_s.codlabor);
    LOOP
      FETCH lista_trayec INTO l_t;
      EXIT WHEN lista_trayec%NOTFOUND;
      metfin:=l_t.metfinal;
      IF metfin>0 THEN
        rumb:=gr*(l_t.azigrd+l_t.azimin/60+l_t.aziseg/3600);
        IF l_t.incgrd>0 THEN
          incl:=gr*(l_t.incgrd+l_t.incmin/60+l_t.incseg/3600);
        ELSE
          incl:=gr*(l_t.incgrd-l_t.incmin/60-l_t.incseg/3600);
        END IF;
        metant:=metini;
        ind:=0;
        OPEN lista_lycumo(l_t.yacimiento,l_t.codlabor,metini,metfin);
        LOOP
          FETCH lista_lycumo INTO l_cu;
          EXIT WHEN lista_lycumo%NOTFOUND;
          xm:=x0+(l_cu.metfinal+metant)/2*sin(rumb)*cos(incl);
          ym:=y0+(l_cu.metfinal+metant)/2*cos(rumb)*cos(incl);
          zm:=z0+(l_cu.metfinal+metant)/2*sin(incl);
          INSERT INTO L_LYCUMO_COORD VALUES (l_s.yacimiento,l_s.codlabor,xm,ym,zm);
          metant:=l_cu.metfinal;
          ind:=1;
        END LOOP;
        CLOSE lista_lycumo;
        x1:=x0+metfin*sin(rumb)*cos(incl);
        y1:=y0+metfin*cos(rumb)*cos(incl);
        z1:=z0+metfin*sin(incl);
        IF ind<1 THEN
          xm:=(x0+x1)/2;
          ym:=(y0+y1)/2;
          zm:=(z0+z1)/2;
          INSERT INTO L_LYCUMO_COORD VALUES (l_s.yacimiento,l_s.codlabor,xm,ym,zm);
        END IF;
        x0:=x1;
        y0:=y1;
        z0:=z1;
      END IF;
      metini:=metfin;
    END LOOP;
    CLOSE lista_trayec;
    commit;
  END LOOP;
  CLOSE lista_sonda;
/*FIN*/
end mod_t_lycumo;

4
Visual Basic 6.0 e inferiores / Re: Alguien puede mirar este codigo
« en: Viernes 20 de Diciembre de 2002, 18:26 »
Porque es una mantencion de un sistema y esta todo hecho  con adodc (control) yo personal mente trabajo con ado , pero no se  si se puede hacer lo que me dices con este control

5
Visual Basic 6.0 e inferiores / Re: Codigo
« en: Viernes 20 de Diciembre de 2002, 17:17 »
esta igual el codigo, es muy raro por que no sale de loop es como que no borrara ni avanzara  ¿? mira lo cortare y pegare tal cual como esta



'elimina sondaje
clabor_del = st_codlabor.Caption
'On Error GO TO   ' Inicializa el controlador de error.
    opcion = MsgBox("Confirma eliminar la Labor " & clabor_del & " y todos sus datos", vbOKCancel, "Sistema de Muestreo Geologico")
    If opcion = 1 Then
        Call deshabilitar_botones
        Datatabla.ClearFields
        elimino = 0
        bdgeo.UserName = st_login
        bdgeo.Password = st_passw
        bdgeo.ConnectionString = Conectar
        bdgeo.RecordSource = "SELECT * FROM sondajes.t_identi WHERE yacimiento=1 AND codlabor='" & clabor_del & "'"
        bdgeo.Refresh
        If bdgeo.Recordset.RecordCount > 0 Then
            'bdgeo.Recordset.MoveFirst
            Do Until bdgeo.Recordset.EOF
                 bdgeo.Recordset.Delete
                 MsgBox bdgeo.Recordset.Fields(0)
                 bdgeo.Recordset.MoveNext
                 MsgBox bdgeo.Recordset.Fields(0)
                elimino = 1
              Loop
              bdgeo.Refresh
            bdgeo.Refresh
        End If
        If elimino = 1 Then
            st_codlabor.Caption = ""
            a = MsgBox("Muestra eliminada Satisfactoriamente", vbOKOnly, "ATENCION")
        Else
            a = MsgBox("No se encontraron datos que eliminar", vbOKOnly, "ATENCION")
        End If
        co_op.Enabled = False
    End If
Exit Sub

If Err.Number <> 0 Then
   Msj = "Error # " & Str(Err.Number) & " fue generado por " _
         & Err.Source & Chr(13) & Err.Description
   MsgBox Msj, , "Error", Err.HelpFile, Err.HelpContext
End If


End Sub

6
Visual Basic 6.0 e inferiores / Insistencia
« en: Viernes 20 de Diciembre de 2002, 14:08 »
Hola a todo, alguien conoce una funcion que tranforme a number(oragle) gracias

7
Visual Basic 6.0 e inferiores / Re: Codigo
« en: Viernes 20 de Diciembre de 2002, 13:15 »
Hola tengo es codigo para eliminar unos registro de un control de datos adodc pero cae en un loop infinito, lo rutie y no avanza aun que le cambien el movefirst por movenext no se mueve gracias


elimino = 0
bdgeo.UserName = st_login
bdgeo.Password = st_passw
bdgeo.ConnectionString = Conectar
bdgeo.RecordSource = "SELECT * FROM sondajes.t_identi WHERE yacimiento=1 AND codlabor='" & clabor_del & "'"
bdgeo.Refresh
If bdgeo.Recordset.RecordCount > 0 Then
Do Until bdgeo.Recordset.EOF
bdgeo.Recordset.MoveFirst
bdgeo.Recordset.Delete
elimino = 1
Loop




Muchas Gracias

8
Visual Basic 6.0 e inferiores / Hola
« en: Viernes 20 de Diciembre de 2002, 12:29 »
Hola Gracias por tu ayuda, pero queria hacerte otra consulta, te cuento
estoy actualizando una base de datos que esta en oracle, la actualizacion la  hago con  adodc, al dale los campo al nuevo registro me arroja el error  de tipo bueno octuve el tipo del campo con el cual tuve problemas  y es un number el problema es que tranforme a todos los  tipos posible y aun me envia el error les envio mi codigo por si encuentra el error muchas gracias


If Len(tabla) = 0 Then
    MsgBox ("Ingrese un Nombre de Tabla")
Else
If Len(BD_1) = 0 Then
 MsgBox ("Ingrese el Nombre de Archivo a Exportar")
Else
 filavar = 1
 coluvar = 0
    Ado_Tabla.UserName = st_login
    Ado_Tabla.Password = st_passw
    Ado_Tabla.RecordSource = UCase(tabla)
    Ado_Tabla.Refresh
   Do While filavar - 1 < grilla.Rows
      grilla.Row = filavar - 1
       Ado_Tabla.Recordset.AddNew
      Do While coluvar - 1 < grilla.Cols
        grilla.Col = coluvar
       ' On Error GoTo error2
       Typedato = (Ado_Tabla.Recordset.Fields(coluvar).Type)
       MsgBox Typedato
         If Typedato = "131" Then
             var = CDec(Trim(grilla.Text))
            Ado_Tabla.Recordset.Fields(coluvar) = var
          Else
            Ado_Tabla.Recordset.Fields(coluvar) = grilla.Text
         End If
        coluvar = coluvar + 1
     Loop
        Ado_Tabla.Recordset.Update
      coluvar = 1
     filavar = filavar + 1
  Loop
 End If
    do_Tabla.Recordset.Update
   primera = False
   MsgBox ("Proceso Terminado")
End If
    FormImportar.MousePointer = 0
   





:)

9
Visual Basic 6.0 e inferiores / Re: Alguien puede mirar este codigo
« en: Viernes 20 de Diciembre de 2002, 12:20 »
Gracias chicos pero prove las dos y se cae igual....:(

10
Visual Basic 6.0 e inferiores / Re: Hola
« en: Jueves 19 de Diciembre de 2002, 23:38 »
Alguien conoce alguna funcion para obtener el tipo de dato de un campo de un recorset ?  ¿ y a que tipo de datos correponde en visul  un number  de oracle?

 Gracias...:(

11
Visual Basic 6.0 e inferiores / Hola
« en: Jueves 19 de Diciembre de 2002, 23:38 »
Alguien conoce alguna funcion para obtener el tipo de dato de un campo de un recorset ?  ¿ y a que tipo de datos correponde en visul  un number  de oracle?

 Gracias...:(

12
Visual Basic 6.0 e inferiores / Re: Alguien puede mirar este codigo
« en: Jueves 19 de Diciembre de 2002, 16:25 »
Hola tengo es codigo para eliminar unos registro de un control de datos adodc pero cae en un loop infinito


 elimino = 0
        bdgeo.UserName = st_login
        bdgeo.Password = st_passw
        bdgeo.ConnectionString = Conectar
        bdgeo.RecordSource = "SELECT * FROM sondajes.t_identi WHERE yacimiento=1 AND codlabor='" & clabor_del & "'"
        bdgeo.Refresh
        If bdgeo.Recordset.RecordCount > 0 Then
            Do Until bdgeo.Recordset.EOF
                bdgeo.Recordset.MoveFirst
                bdgeo.Recordset.Delete
                elimino = 1
              Loop




Muchas Gracias

13
Visual Basic 6.0 e inferiores / Re: adodc
« en: Viernes 13 de Diciembre de 2002, 16:26 »
Hola a todos, les cuento que debo hacer una mantencion a un sistema, cliente servidor que esta  implementado con el objeto adodc.  Yo queria pedir si alguno de ustedes tienen imformacion de este objeto ¿ como trabaja con MSflexgrid para la actualizacion de datos ? agradeceria mucho su ayuda y seria de gran utilidad

14
Visual Basic 6.0 e inferiores / Re: Ayuda para exportar datos por favor
« en: Jueves 5 de Diciembre de 2002, 20:12 »
Tengo un codigo para exportar datos a excel pero cuando llegaba  a los 65536, se cae por que es esa la cantidad  que soporta una hoja, la pregunta es como puedo utiliza otra hoja?

15
Visual Basic 6.0 e inferiores / Exportar Datos a EXcel
« en: Jueves 5 de Diciembre de 2002, 19:17 »
Tener un libro? como para saber, por que debe tener un limite .....
gracias

16
Visual Basic 6.0 e inferiores / Re: Exportar Datos a EXcel
« en: Jueves 5 de Diciembre de 2002, 18:50 »
oka, gracias habia pensado algo asi  me confirmaste  lo que pensaba gracias

17
Visual Basic 6.0 e inferiores / Re: Exportar Datos a EXcel
« en: Jueves 5 de Diciembre de 2002, 14:19 »
Hola Primera ves que entro al foro, y queria hacerles una consulta, tengo un problema al enviar datos a excel ya que excel solo aguanta 65625 registro y yo quiero enviar 127.000 registro es posible crear dos  o mas archivos  excel pa los datos gracias

Páginas: [1]