Entrar
¿Usuario nuevo? Regístrate
abap4 · ABAP 4
? ¿Ya estás suscrito? Entrar en Yahoo!

Consejos de Yahoo! Grupos

¿Sabías que...?
Puedes determinar el orden de los mensajes. Pulsa el enlace en la columna correspondiente a la fecha. Tus preferencias serán guardadas y no tendrás que introducirlas de nuevo.

Mensajes

  Mensajes Ayuda
Avanzado
Conexion desde programa ABAP a SQL...   Lista de mensajes  
Responder | Reenviar Mensaje #18749 de 22596 |
RE: [ABAP4] Conexion desde programa ABAP a SQL...

Tambien pues hacer lo mismo por la DBCO. y utilizar las sentencias OPEN SQL.....
y un mensaje que envié hace tiempo al grupo para las consultas, al SQL
Para ello está la transaccion DBCO, en la que verás una tabla con diferentes campos, no sé como funciona exactamente esta transacción, ni cuál es el significado de todos los campos.
Haciendo doble click sobre una linea te deja incluir los distintos campos como password etc etc
Habla con el basis, para ver si sabe hacer esto... yo te explico un par de ellos
Tenemos el campo: Nombre de conexión, que es el nombre que daremos a nuestra conexión, y que despues utilizaremos en los programas ABAP para conectar de la siguiente manera

* le hemos puesto el nombre 'INTRANET' a esta conexión
EXEC SQL.
connect to 'INTRANET' as 'intranet'
ENDEXEC.

otro campo importante es el de usuario (como te vas a conectar a la BD externa) y el campo. Informacion de conexion, que es una cadena de caracteres para conectar con la BD, en mi caso esta, es decir, el servidor SGBD y el nombre de la BD
MSSQL_SERVER=tcp:IPSQL01 MSSQL_DBNAME=Intranet

Una vez hecho esto, ya solo falta utilizarlo en ABAP.
Primero tenemos que establecer la conexion
EXEC SQL.
connect to 'INTRANET' as 'intranet'    <= no hay punto final
ENDEXEC.
EXEC SQL.
    set connection 'INTRANET'            <= no hay punto final
ENDEXEC.   
* para hacer una lectura
EXEC SQL.
* abrimos un cursor

    OPEN cursor FOR
* y nuestra consulta
        select campo1, campo2, campo3
         from [recurso de la base de datos, por ejemplo Intranet.dbo.v_vista]
*       se tiene acceso a variables abap en estos trozos de codigo con los ":" es

        where campo4 = :variable_abap       "<= fijate que no hay punto al final de la sentencia!!!

ENDEXEC.
*Recogemos los datos
DO.
    EXEC SQL.
*   Recojo mi cursor
        FETCH NEXT cursor INTO :mi_tabla_interna-campo1, :mi_tabla_interna-campo2, :mi_tabla_interna-campo3  <= !!!NO HAY PUNTO FINAL

    ENDEXEC.
    if sy-subrc <> 0. 
*    No hay datos en el cursor, me salgo del "do"
        exit.
    endif.
*    trabajo con mis datos de mi_tabla_interna como haría normalmente.
    append mi_tabla_interna. "por ejemplo

ENDDO.
* cierro el cursor
EXEC SQL.
    CLOSE cursor   <= no hay punto
ENDEXEC.

suerte

De: abap4@yahoogroups.com [mailto:abap4@yahoogroups.com] En nombre de Becerra, Israel
Enviado el: jueves, 02 de noviembre de 2006 20:37
Para: abap4@yahoogroups.com
Asunto: RE: [ABAP4] Conexion desde programa ABAP a SQL...

Bueno amigo , hace años hice algo parecedio con sql aqui te envio el codigo q necesitas..
espero q te sirva

REPORT ZGR_PR2.

INCLUDE OLE2INCL.
INCLUDE DOCSINCL.



TYPES: OLE2_OBJECT LIKE OBJ_RECORD.
DATA: H_CN TYPE OLE2_OBJECT.
DATA: H_RS TYPE OLE2_OBJECT.
DATA: H_FI TYPE OLE2_OBJECT.
DATA: H_IT TYPE OLE2_OBJECT.
DATA: H_ES TYPE OLE2_OBJECT.
DATA: H_ER TYPE OLE2_OBJECT.


*DATA: c1(250) value
*'PROVIDER=SQLOLEDB;SERVER=O09;DATABASE=shopping;UID=sa;PWD='.
*DATA: c2(250) value
* 'sp_SCVE_EstaCuen ''1888981110000391'''.

DATA: c1(250) value
'DRIVER={Microsoft Access Driver (*.MDB)};' &
'DBQ=\\O10a\GTE_DES\vael\dt_ve_1.MDB;'.
*DATA: c2(250) value 'select [Gráfico 5], [Proceso], [Indice] from
*datosclientes'.
DATA: c2(250) value 'select * from
datosclientes'.


DATA: c3(250).
DATA: cFName(15).
DATA: cFValue(50).
DATA: cErr(100).
DATA: i1 TYPE I.
DATA: i2 TYPE I.
DATA: i3 TYPE I.
DATA: i4 TYPE I.
DATA: f1 TYPE F.
DATA: p1 TYPE P.
DATA: x1 TYPE X.


start-of-selection.

IF H_CN-HEADER = SPACE OR H_CN-HANDLE = -1.


* Crea la conexón a la base de datos
WRITE: AT / 'Cadena Conexión :', c1.
CREATE OBJECT H_CN 'ADODB.CONNECTION'.
IF SY-SUBRC NE 0. WRITE SY-MSGLI. ENDIF.
SET PROPERTY OF H_CN 'ConnectionTimeout' = 25.
SET PROPERTY OF H_CN 'CommandTimeout' = 600.
CALL METHOD OF H_CN 'open' EXPORTING #1 = c1.
IF SY-SUBRC NE 0. WRITE SY-MSGLI. ENDIF.
* Verifica si hay errores de conexión
GET PROPERTY OF H_CN 'ERRORS' = H_ES.
IF SY-SUBRC NE 0. WRITE SY-MSGLI. ENDIF.
GET PROPERTY OF H_ES 'COUNT' = i1.
IF SY-SUBRC NE 0. WRITE SY-MSGLI. ENDIF.
IF i1 > 0 .
CALL METHOD OF H_ES 'item' = H_ER EXPORTING #1 = 0.
IF SY-SUBRC NE 0. WRITE SY-MSGLI. ENDIF.
GET PROPERTY OF H_ER 'NUMBER' = i2.
IF SY-SUBRC NE 0. WRITE SY-MSGLI. ENDIF.
if i2 <0> 0.
i4 = i4 + 1.
ULINE.
WRITE: AT / 'REGISTRO:', i4.
* Inicia Impresión de Columnas
i3 = 0.
CALL METHOD OF H_FI 'item' = H_IT EXPORTING #1 = i3.
GET PROPERTY OF H_IT 'VALUE' = cFValue.
WRITE: AT /(25) 'F1:', cFValue.
i3 = i3 + 1.
CALL METHOD OF H_FI 'item' = H_IT EXPORTING #1 = i3.
GET PROPERTY OF H_IT 'VALUE' = cFValue.
WRITE: AT /(25) 'F2:', cFValue.
i3 = i3 + 1.
CALL METHOD OF H_FI 'item' = H_IT EXPORTING #1 = i3.
GET PROPERTY OF H_IT 'VALUE' = cFValue.
WRITE: AT /(25) 'F3:', cFValue.
i3 = i3 + 1.
* Siguiente Registro
CALL METHOD OF H_RS 'movenext'.
IF SY-SUBRC NE 0. WRITE SY-MSGLI. ENDIF.
GET PROPERTY OF H_RS 'EOF' = i1.
ENDWHILE.
* Convierte a una cadena
* CALL METHOD OF H_RS 'movefirst'.
* CALL METHOD OF H_RS 'getstring' = c3.
* IF SY-SUBRC NE 0. WRITE SY-MSGLI. ENDIF.
* ULINE.
* WRITE: AT / 'Convertido a String'.
* WRITE: AT / C3.


* Cierra la conexión
CALL METHOD OF H_RS 'close'.
FREE OBJECT H_RS.
H_RS-HANDLE = -1.
CALL METHOD OF H_CN 'close'.
FREE OBJECT H_CN.
H_CN-HANDLE = -1.
FREE OBJECT H_FI.
FREE OBJECT H_IT.
FREE OBJECT H_ES.
FREE OBJECT H_ER.



ENDIF.


 


De: abap4@yahoogroups.com [mailto:abap4@yahoogroups.com] En nombre de Daniel Vargas
Enviado el: Jueves, 02 de Noviembre de 2006 02:23 p.m.
Para: abap4@yahoogroups.com
Asunto: [ABAP4] Conexion desde programa ABAP a SQL...

 

Hola foro, como están?

 

Necesito ayuda, cómo realizar desde un programa ABAP la lectura de datos a una tabla que está en una base de datos SQL externa.

Cuales son los pasos para configurar la conexion???, con la tabla "DBCON" alcanza?

 

Si tienen algun ejemplo, se los agradezco.

 

Daniel

 __________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/

ADVERTENCIA LEGAL
Le informamos que el correo electrónico e Internet no aseguran ni garantizan la confidencialidad de los mensajes transmitidos, ni su integridad o correcta recepción, por lo que GRUPO ANTOLIN-IRAUSA, S.A. y/o sus sociedades filiales o participadas no asumen responsabilidad alguna por tales circunstancias. Si no consiente en la utilización del correo electrónico le rogamos nos lo indique de forma inmediata. Este mensaje va dirigido, en exclusiva, a su destinatario y contiene información confidencial y sujeta al secreto profesional, cuya divulgación no está permitida por la ley. Si hubiera recibido este mensaje por error, le rogamos lo comunique mediante correo electrónico remitido al emisor y proceda a su eliminación, así como a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, con cualquier finalidad, están prohibidas por la ley
PRIVILEGED AND CONFIDENTIAL
We hereby inform you, that e-mail and Internet do not guarantee the confidentiality, nor the completeness or proper reception of the messages sent and, thus, GRUPO ANTOLIN-IRAUSA, S.A. and/or its affiliated or participated companies does not assume any liability for those circumstances. Should you not agree to the use of e-mail, you are kindly requested to notify us immediately. This message is intended exclusively for the person to whom it is addressed and contains privileged and confidential information protected from disclosure by law. If you are not the addressee indicated in this message, you should immediately delete it as well as any attachments and to notify it to the sender by e-mail. Also, you are hereby notified that any dissemination, distribution, copying or use of this message or any attachments, for any purpose, is strictly prohibited by law.


Vie, 3 de Nov, 2006 7:25 am

igdies
Sin conexión Sin conexión
Enviar mensaje Enviar mensaje

Reenviar Mensaje #18749 de 22596 |
Desplegar mensajes Autor Ordenar por fecha

Hola foro, como están? Necesito ayuda, cómo realizar desde un programa ABAP la lectura de datos a una tabla que está en una base de datos SQL externa. ...
Daniel Vargas
danovargas
Sin conexión Enviar mensaje
2 de Nov, 2006
7:29 pm

Bueno amigo , hace años hice algo parecedio con sql aqui te envio el codigo q necesitas.. espero q te sirva REPORT ZGR_PR2. INCLUDE OLE2INCL. INCLUDE...
Becerra, Israel
israelibf
Sin conexión Enviar mensaje
2 de Nov, 2006
7:54 pm

Tambien pues hacer lo mismo por la DBCO. y utilizar las sentencias OPEN SQL..... y un mensaje que envié hace tiempo al grupo para las consultas, al SQL Para...
Diez Esteban, Ignacio
igdies
Sin conexión Enviar mensaje
3 de Nov, 2006
7:37 am

Muchas gracias !!!!, estaremos probandolo. "Diez Esteban, Ignacio" <ignacio.diez@...> escribió: v\:* { BEHAVIOR: url(#default#VML) }...
Daniel Vargas
danovargas
Sin conexión Enviar mensaje
3 de Nov, 2006
1:59 pm
Avanzado

Copyright © 2009 Yahoo! Todos los derechos reservados.
Política de Privacidad Actualizada - Condiciones del servicio - Directrices - Ayuda