Olvídate del tema del control de compromiso y los journals. Entiendo que 
si puedes insertar no debes tener el problema que te expuse en mi primer 
correo.
Los journals son logs para control de transacciones, te permiten hacer 
COMMIT o ROLLBACK de la transacción y confirmas o deshaces todo lo que has 
hecho. 
Si tu cadena de conexión especificas que vas a usar transacciones (control 
de compromiso <> *none), al operar con un fichero que no tiene registro de 
transacciones (journal) te impide la actualización.

Lo mejor es que hables con el administrador de BD del as400 y hagáis un 
trabajo conjunto. Quizás podríais crear una biblioteca aparte donde tengas 
tus ficheros de trabajo, y donde si puedas hacer updates, inserts y lo que 
haga falta. 

Un Saludo.

          Jose Vicente Cercós.



<[email protected]> 
Enviado por: [email protected]
27/01/2010 04:36
Por favor, responda a
"forum.help400" <[email protected]>


Para
"'forum.help400'" <[email protected]>
cc

Asunto
RE: DELETE - UPDATE (AS400 y VBA)






Gracias José por responder.
 
En realidad es extraño porqué no puedo hacer un “DELETE” o un “UPDATE”.
 
Te explico un poco la situación. Trabajo para un área administrativa de 
una institución bancaria, y por lo tanto no tengo acceso al AS400 como me 
gustaría tener, tipo administrador, pero hago lo mejor que puedo. Por 
razones de seguridad no puedo instalar “.NET”, así que trabajo el editor 
de visual en Excel (VBA)
 
Hoy hablé con el responsable del área y me dice que no es tan crítico el 
punto de “subir” información, así que puedo obviar un poco lo de borrar 
datos de un fichero. Y la razón es porque usan  “cwbtfxla.xll”  para subir 
datos. (pero me hubiese gustado programarlo)
 
Pero me gustaría, sino es mucha molestia que me explicaras si es posible, 
¿cómo puedo comprobar si tengo “compromiso de control distinto de *NONE? y 
si los ficheros no tienen Journal. Pero, pero con algunas líneas de código 
o si no es posible así, entonces dónde podría revisar.
 
Gracias por tu atención.
 
Nota: Mañana haré otro correo (creo que es lo más adecuado) preguntando 
sobre ¿cómo puedo mediante VBA o Visual Basic 6.0 saber si un Fichero y/o 
Query existe en una biblioteca? 
 
Gracias.
 
De: [email protected] 
[mailto:[email protected]] En nombre de Jose Vicente 
Cercos Barres
Enviado el: Martes, 26 de Enero de 2010 03:32 a.m.
Para: forum.help400
Asunto: Re: DELETE - UPDATE (AS400 y VBA)
 

Disculpa, no me había dado cuenta que si podías hacer Insert. Es muy raro. 

Para descartar que el fichero contra el que actúas tiene algo especial, 
crea uno de cero e intenta añadir, borra, y actualizar. 

Yo utilizo .Net y uso OleDbConnection en lugar de ADODB. También utilizo 
el driver IBMDASQL en lugar del IBMDA400. Revisa que tengas la última PTF 
del Client Access instalada. 

Te adjunto un fragmento de código para que veas la cadena de conexión: 

            Usuario = frmLogin.glUsuario 
            Pwd = frmLogin.glPassword 

            'Conectar con AS400 
            Dim S As String 
            S = "Provider=IBMDASQL.DataSource.1;" _ 
            & "Persist Security Info=False;" _ 
            & "User ID=" & Trim(Usuario) & ";" _ 
            & "Password=""" & Trim(Pwd) & """;" _ 
            & "Data Source=MyAS400;Protection Level=None;Extended 
Properties="""";Initial Catalog=AS400;" _ 
            & "Transport Product=Client Access;SSL=DEFAULT;Force 
Translate=65535;" _ 
            & "Default Collection=MYLIB;Convert Date Time To Char=TRUE;" _ 

            & "Catalog Library List=MYLIB;Cursor Sensitivity=3;Use SQL 
Packages=False;" _ 
            & "SQL Package Library Name="""";SQL Package Name="""";" _ 
            & "Add Statements To SQL Package=True;Unusable SQL Package 
Action=1;" _ 
            & "Block Fetch=True;Data Compression=True;Sort Sequence=0;Sort 
Table Name="""";" _ 
            & "Sort Language ID="""";Query Options File 
Library="""";Trace=0;Hex Parser Option=0;" _ 
            & "Maximum Decimal Precision=31;Maximum Decimal 
Scale=31;Minimum Divide Scale=0" 

            Me.OleDbConnection1.ConnectionString = S 
            Try 
                Me.OleDbConnection1.Open() 
                Me.OleDbConnection1.Close() 
                UsuarioAS400 = True 
            Catch ex As Exception 
                MsgBox("Error al conectar: " + ex.Message) 
                Me.OleDbConnection1.ConnectionString = "" 
            End Try 


Un Saludo.

         Jose Vicente Cercós. 


Jose Vicente Cercos Barres <[email protected]> 
Enviado por: [email protected] 
26/01/2010 09:16 


Por favor, responda a
"forum.help400" <[email protected]>



Para
"forum.help400" <[email protected]> 
cc

Asunto
Re: DELETE - UPDATE (AS400 y VBA)
 









Hola Ricardo. 

       Lo primero sería comprobar que tienes permisos de escritura sobre 
los ficheros, lo segundo comprobar si tus ficheros no tienen journal y tu 
cadena de conexión tiene control de compromiso distinto de *NONE, por 
tanto cuando vas a hacer consultas de actualización al no detectar journal 
falla. El código no tiene mala pinta. Revisa tu cadena de conexión a 
fondo. 

Un Saludo.

        Jose Vicente Cercós. 

<[email protected]> 
Enviado por: [email protected] 
26/01/2010 04:29 


Por favor, responda a
"forum.help400" <[email protected]>



Para
"'forum.help400'" <[email protected]> 
cc

Asunto
DELETE - UPDATE (AS400 y VBA)
 









Hola a Todos, mi nombre es Ricardo. 
 
Actualmente estoy haciendo una aplicación de interfaz en mi trabajo ( 
VBA-Excel) la cual se debe conectar al AS400. Hasta ahora el único 
problema que tengo es este: 
 
¿cómo borrar todos los datos de un archivo? 
 
Resulta que la empresa en la cual trabajo usan el AS400 y tienen como 58 
queries para realizar muchos informes. Usan un complemento bien conocido 
llamado “cwbtfxla” para bajar y subir datos al AS400. Hace un mes me 
contrataron y propuse hacer un interfaz o un menú para subir, bajar y 
editar datos. Pero tengo un problema en cuanto a actualizar y/o borrar 
datos. 
 
Puedo ingresar registros con “INSERT INTO CLIENTE ( CUENTA) VALUES 
(‘377704697826’)” pero cuando uso instrucciones SQL como “UPDATE o 
DELETE”; o me envía un error, o se cierra Excel o simplemente se queda 
colgado y tengo que teclear CTRL+ALT+SUPR 
 
Pongo un código típico que debería funcionar, pero al llegar a 
“MYCONN.EXECUTE (SQL)” me da error. ¿qué hace falta?: 
 
Sub Borrar_Datos_Del_Fichero() 
Dim SQL As String 
Dim MyConn As ADODB.Connection 
SQL = "DELETE FROM CLIENTE.CUENTA" 
Set MyConn = New ADODB.Connection 
MyConn.Mode = adModeReadWrite 
MyConn.CursorLocation = adUseClient 
MyConn.ConnectionString = "Provider=IBMDA400;Data source=123.105.2.5;User 
Id=USUARIOX;Password=CLAVEX" 
MyConn.Open 
MyConn.Execute (SQL) 
MyConn.Close 
End Sub 
 
 
Nota 1: No tengo ningún problema en la conexión, pues puedo importar e 
insertar datos. 
Nota 2: Tengo dos semanas buscando por todo internet y he probado una 
docena de posibilidades y nada 
 
Gracias por toda la ayuda que me puedan brindar, pues encontrar trabajo no 
es fácil en estos tiempos, pero con Fe todo se puede. 


__________ Información de ESET NOD32 Antivirus, versión de la base de 
firmas de virus 4805 (20100125) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400 
____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400 
 
__________ Información de ESET NOD32 Antivirus, versión de la base de 
firmas de virus 4805 (20100125) __________
 
ESET NOD32 Antivirus ha comprobado este mensaje.
 
http://www.eset.com____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

____________________________________________________
© Publicaciones Help400, S.L. - Todos los
derechos reservados http://www.help400.es
----------------------------------------------------
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a