100% encontró este documento útil (1 voto)
185 vistas19 páginas

Manual-Mapbasic

Este manual proporciona una guía de referencia para el desarrollo de aplicaciones en MapInfo Professional 9.5. Explica conceptos básicos de programación como variables, tipos de datos, operadores y estructuras de control de flujo. También cubre temas como la creación de interfaces de usuario, el trabajo con tablas, ventanas y la base de datos, así como la integración con otros lenguajes de programación.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
185 vistas19 páginas

Manual-Mapbasic

Este manual proporciona una guía de referencia para el desarrollo de aplicaciones en MapInfo Professional 9.5. Explica conceptos básicos de programación como variables, tipos de datos, operadores y estructuras de control de flujo. También cubre temas como la creación de interfaces de usuario, el trabajo con tablas, ventanas y la base de datos, así como la integración con otros lenguajes de programación.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

MANUAL DE MAPBASIC

Versión 9.5

Este manual es una guía de referencia para el desarrollo de


aplicaciones en MapInfo Professional 9.5

Elaborado por: Olibert García Felipe


MANUAL DE MAPBASIC

INDICE

1. EDITOR DE MAPBASIC
M APBASIC ............................................................................................................................... 4
1.1 DESCRIPCIÓN DE LA INTERFAZ  ..................................................................................................... ..................... 4
1.2 COMPILAR PROGRAMAS : .................................................................................................... ............................ 5
2. FUNDAMENTOS DE PROGRAMACIÓN EN MB............................................................................................ 6
2.1 VARIABLES ........................................................... ............................................................... ......................... 6
2.2 TIPOS DE DATOS ........................................................................................................................................... 6
2.3 OPERADORES  ...................................................................................................... ......................................... 7
2.4 CONTROLES DE FLUJO Y BUCLES ........................................................................................................................ 9
2.5 PROCEDIMIENTOS SUB Y FUNCTION ...................................................... .......................................................... 12
3. CREACIÓN DE INTERFACES EN MAPBASIC ............................................................................................... 14
3.1 GESTIÓN DE MENÚS ...................................................... ................................................................ .............. 14
3.2 GESTIÓN DE BARRA DE HERRAMIENTAS :.............................................................. ............................................. 16
3.3 FUNCIÓN COMMANDINFO() ......................................................................................................................... 17
3.4 CUADROS DE DIALOGO ..................................................................................................... ............................ 21
4. TRABAJO CON TABLAS: ........................................................................................................................... 25
4.1 SENTENCIA CREATE TABLE ....................................................................................... ..................................... 25
4.2 SENTENCIA ALTER TABLE ..................................................................................................... ......................... 26
4.3 SENTENCIA CREATE MAP............................................................ ................................................................ .. 26
4.4 SENTENCIA PACK TABLE ............................................................................ ................................................... 26
4.5 FUNCIÓN TABLEINFO ...................................................................................................... ............................. 26
4.6 FUNCIÓN NUMTABLES.................................................. ............................................................... ................ 27
4.7 SENTENCIA OPEN TABLE .............................................................. ............................................................... .. 27
4.8 SENTENCIA COMMIT TABLE, ROLLBACK TABLE .................................................................................................. 27
4.9 TABLAS ESPECIALES ..................................................................................................................................... 28
4.10 FUNCIÓN OBJECTINFO .............................................................................................. ................................... 28
5. TRABAJO CON VENTANAS ....................................................................................................................... 29
5.1 SENTENCIA MAP.............................................................. ............................................................... ............ 30
5.2 FUNCIÓN WINDOWID ............................................................................................... .................................. 30
5.3 FUNCIÓN FRONTWINDOW ........................................................................................................................... 30
5.4 FUNCIÓN NUMWINDOWS, NUMALLWINDOWS .......................................................... ..................................... 30
5.5 FUNCIÓN WINDOWINFO ..................................................................................................... ......................... 31
5.6 SENTENCIA SET MAP ..................................................................................................... .............................. 32
5.7 AGREGAR Y QUITAR CAPAS ......................................................... ................................................................ ... 33
5.8 BÚSQUEDA Y LOCALIZACIÓN DE OBJETOS .......................................................................................................... 34
6. VENTANA DE PRESENTACIÓN: ................................................................................................................. 34
6.1 SENTENCIA LAYOUT ........................................................ ............................................................... .............. 34
6.2 SENTENCIA CREATE FRAME ........................................................................................................ ................... 35
6.3 SENTENCIA CREATE TEXT ............................................................................................................. ................. 35
6.4 TABLA LAYOUTN......................................................................................................................................... 36
6.5 IMPRESIÓN DE LA VENTANA DE PRESENTACIÓN .................................................................................................. 36
7. TRABAJO CON DBMS:.............................................................................................................................. 36
7.1 DIFERENCIA ENTRE BBDD ESPACIAL Y NO ESPACIAL  ........................................................................................... 36
7.2 CONEXIÓN DBMS SIN BBDD ESPACIAL............................................................ .............................................. 37
MANUAL DE MAPBASIC

7.3 CONECTAR, DESCONECTAR A SQLSERVER Y ORACLE. .................................................. ....................................... 38


7.4 HACER UNA TABLA REPRESENTABLE CON COORDENADAS X E Y ............................................................................ . 38
7.5 VINCULAR, DESVINCULAR TABLAS ..................................................................................................... .............. 40
7.6 REFRESCAR DATOS ...................................................................................................................................... 41
7.7 CONEXIÓN DBMS CON BBDD ESPACIAL ..................................................................................................... ... 41
7.8 CREAR ESPACIOS EN EL SERVIDOR. .......................................................................................................... ........ 42
8. INTEGRACIÓN CON OTROS LEGUAJES DE PROGRAMACIÓN: ................................................................... 43
8.1 ESTABLECIENDO LA CONEXIÓN CON LA INSTANCIA DE MAPINFO .................................................. ......................... 44
8.2 ENVÍOS DE COMANDOS Y CONSULTAS A MAPINFO DESDE VB6.0, .NET ..................................... ........................... 44
8.3 USO DE LOS MÉTODOS CALLBACK .................................................................................................................. 45
MANUAL DE MAPBASIC

1. Editor de MapBasic
Para ingresar al editor y compilador de MapBasic, realice lo siguiente:
• En el menú Inicio haga clic
cli c en programas, luego MapInfo y enseguida MapBasic 9.5

• O en el escritorio haga clic en el icono de la aplicación.

1.1 Descripción de la interfaz

Barra de Menú
Menú

 Área de trabajo
MANUAL DE MAPBASIC

Menú Archivo (File):

• Nuevo (New): Permite crear un nuevo archivo de MapBasic.


•  Abrir (Open): Abre un archivo de MapBasic previamente guardado (*.MB)
• Guardar (Save): Permite guardar los cambios realizados sobre un archivo de MapBasic.
• Guardar Como (Save As): Permite guardar los cambios realizados sobre un archivo de
MapBasic.
• Cerrar (Close): Cierra un archivo de MapBasic.
• Cerrar todo (Close All): Cierra todos los archivos de MapBasic abiertos.
• Revertir (Revert): Permite revertir todos los cambios realizados después de la última versión
guardada.
Menú Edición (Edit):

• Deshacer (Undo): Permite deshacer la última acción realizada.


• Cortar (Cut): Permite cortar un texto seleccionado.
• Copiar (Copy): Permite copiar un texto seleccionado.
• Pegar (Paste): Permite pegar el contenido (texto) que se encuentra en el portapapeles.
• Limpiar (Clear): Borra todo el texto seleccionado.
• Seleccionar todo (Select All): Permite seleccionar todo el contenido.
Menú Buscar (Search):

• Buscar (Find): Muestra un cuadro de diálogo para buscar el texto ingresado.


• Buscar Siguiente (Find Again): Busca el siguiente resultado para el texto ingresado como
búsqueda.
• Buscar y reemplazar (Replace and Find Again): Busca y reemplaza el texto ingresado por el
nuevo texto.
• Ir a Línea (Go to Line): Permite ir a la línea indicada.
Menú Proyecto (Project):

• Compilar archivo (Compile current file): Permite compilar el archivo actual (*.MB) en formato
ejecutable (*.MBX).
• Ejecutar (Run): Permite ejecutar el archivo (*.MBX) en MapInfo.

1.2 Compilar programas:

Para crear un programa en MapBasic, necesitamos que por lo menos se tenga la siguiente estructura.

Código:

 ‘Declarar la estructura
Declare Sub Main()

 ‘Primer procedimiento que se ejecuta cuando se inicia la aplicación


Sub Main()

Note “Hola Mundo”

End Sub
MANUAL DE MAPBASIC

2. Fundamentos de programación en MB
Expresiones:

Una expresión es un conjunto de variables, constantes, llamada a funciones, referencias a tablas y


operadores. Por ejemplo:

Código:

Declare Sub Main()

Sub Main()

Dim nombre as String

 ‘Expresion variable
nombre = “Hola Olibert”
 ‘Llamado a función UCase
Note UCase$(nombre)

End Sub

2.1 Variables

Una variable es un identificador que guarda el valor en un tipo de datos determinado. Podemos
ejecutar operaciones de lectura y escritura sobre el valor que contiene. En MapBasic se declaran las
variables de la siguiente manera:
Dim [nom_identificador] as [Tipo_Dato] 

Donde [nom_identificador] es el nombre de la variable con el cual la identificaremos en el programa y


[Tipo_Dato] es el tipo de dato para el valor almacenado por la variable. A continuación se describen
los tipos de datos y la forma de asignación de los mismos.
2.2 Tipos de datos

Tipo Ejemplo de Asignación Notas

Integer i = 1073741824
SmallInt i = 16384
Float F=4
tam = 3.36
resul = 3.4e9
String Nombre = “Olibert” Para agregar caracteres
especiales se puede usar la
función Chr$()
MANUAL DE MAPBASIC

Logical Visible = 1 Se puede definir el valor lógico


 Visible = TRUE de la siguiente manera 1 = True;
0 = false. Si se tiene el archivo
de definición se podría usar las
constantes TRUE, FALSE
Date Fecha_ped = 20100324
Fecha_ven = “3/24/10”
Fecha_pago = “03-24-10”
 Ayer = Curdate() – 1
 Alias Columna = “Total” Dato exclusivo de MapInfo, es
Tabla = “TabDistritos” utilizado para identificar el
nombre de un campo o tabla de
MapInfo
Pen StyleLinea = MakePen(1, 3, BLACK) Dato exclusivo de MapInfo, es
utilizado para almacenar un
estilo de línea.
Brush StyleRelleno = MakeBrush(5, BLUE, Dato exclusivo de MapInfo, es
WHITE) utilizado para almacenar un
estilo de Relleno.
Font StyleFuente = MakeFont(“Helv”, 1, Dato exclusivo de MapInfo, es
20,BLACK, WHITE) utilizado para almacenar un
estilo de fuente.
Symbol StylePunto = MakeSymbol(44, RED, 16) Dato exclusivo de MapInfo, es
utilizado para almacenar un
estilo Símbolo.
Object Myobj = CreateLine(73.2, 40, 73.6, 40.4) Dato exclusivo de MapInfo, es
utilizado para almacenar un
objeto (Punto, Línea, Región,
Polilínea, etc.)

2.3 Operadores

Un operador actúa sobre una o más variables para producir un resultado. Los operadores se clasifican
según el tipo de dato o valor que producen.
Operadores Numéricos:

Los operadores numéricos actúan sobre los valores numéricos para obtener un resultado. Los
operadores numéricos son los siguientes:
MANUAL DE MAPBASIC

Sintaxis:

Forma 1:
DO WHILE <Condición>
<Bloque de instrucciones>
LOOP

Forma 2:

DO
<Bloque de instrucciones>
LOOP WHILE <Condición> 

Ejemplo:

Código:

Declare Sub Main()

Sub Main()

Dim seguir as Logical

DO
 ‘Ingresa una vez y pregunta para continuar
seguir = ASK(“Seguro que desea continuar?”, “Sí”, “No”)
PRINT CURTIME()
LOOP WHILE seguir  ‘Se repite siempre que sea verdadero

End Sub

Declare Sub Main()

Sub Main()

Dim seguir as Logical

 ‘Se pregunta antes de entrar al bucle


seguir = ASK(“Seguro que desea continuar?”, “Sí”, “No”)
DO WHILE seguir
 ‘Entra solo cuando seguir es verdadero
seguir = ASK(“Seguro que desea continuar?”, “Sí”, “No”)
PRINT CURTIME()
LOOP

End Sub

2.5 Procedimientos Sub y Function

Los procedimientos y funciones nos ayudan a ordenar, estructurar y reutilizar una porción de código.
Según su comportamiento se pueden clasificar en Procedimientos Sub y Function. Se diferencian uno
MANUAL DE MAPBASIC

del otro en que los procedimientos Sub realizan un conjunto de rutinas sin retornar ningún tipo de
valor tras su ejecución, caso contrario los procedimientos Function si retornan un valor en un
determinado tipo de dato.
Sintaxis:

SUB <NombreProcedimiento> ( [<Parametros>] 


 ) 
<Bloque de instrucciones>
END SUB

FUNCTION <NombreFuncion> ( [<Parametros>] 


 ) AS <TipoDato_Retorno>
<Bloque de instrucciones>
END FUNCTION

Ejemplo:

Código:

Declare Sub Main()

Sub Main()
Dim num1 as Integer
Dim num2 as Integer
Dim resul as Integer

resul = Sumar(num1, num2)


Mostrar_Resultado(resul)
End Sub

Sub Mostrar_Resultado(cad as String)


NOTE cad
End Sub

Function Sumar(n1 as Integer, n2 as Integer)


Sumar = n1 + n2
End Function

Los parámetros son opcionales, si no se especifica su ámbito por defecto todos los parámetros se
pasan por referencia, si se desea que un parámetros se pase por valor se debe indicar la palabra clave
BYVAL antes del parámetro.

Ejemplo:

Código:

Declare Sub Main()

Sub Main()
Dim cadena as String

cadena = “Valor”
Cambiar_Mostrar_Resultado(resul)
MANUAL DE MAPBASIC

NOTE  cadena

End Sub

Sub Cambiar_Mostrar_Resultado (ByVal cad as String)


cad = cad & “ Cambio”
NOTE cad
End Sub

3. Creación de interfaces en MapBasic


Menús

Un menú nos permite brindar al usuario una lista de opciones a escoger. Un menú está conformado
por ítems a la vez un menú puede ser parte de otro menú (Sub-Menú), a continuación se muestra los
menús, submenús e ítems.

1. Barra de Menú

2. Items

3. Sub Menú

3.1 Gestión de Menús

 A continuación se muestran las sintaxis para realizar operaciones básicas sobre los menús:

Operación Sintaxis

Crear menú Create Menu nuevo_menu [ ID menu_id ] As


item [ ID menu_item_id ]
{Calling handler}
[ , menuitem ... ]

Redefinir la barra de menú  Alter Menu Bar { Add | Remove }


{ menuname | ID menu_id }
[ , { menuname | ID menu_id } ... ]

 Agregar ítems a un menú  Alter Menu {menuname | ID menu_id }


 Add menudef [, menudef...]
MANUAL DE MAPBASIC

Sub Main()
 ‘Llama al procedimiento crear BarraPush
Call Crear_BarraTool

End Sub

Sub Crear_BarraTool()

 ‘Crea una barra de herramientas


CREATE BUTTONPAD “Tools Custom”  AS
 ‘Primer botón
ToolButton
ID 1001  Icon MI_ICON_SYMBOL 
DRAWMODE DM_CUSTOM_POINT
CURSOR  MI_CURSOR_CROSSHAIR 
Calling opt_primero
HelpMsg “Ejecutar primera opción”
 ‘Segundo botón
ToolButton
ID 1002 Icon MI_ICON_LINE
DRAWMODE DM_CUSTOM_LINE
CURSOR  MI_CURSOR_CROSSHAIR 
Calling opt_segundo
HelpMsg “Ejecutar segunda opción”
 ‘Tercer botón
ToolButton
ID 1002 Icon MI_ICON_POLYLINE
DRAWMODE DM_CUSTOM_POLYLINE
CURSOR  MI_CURSOR_CROSSHAIR 
Calling opt_tercero
HelpMsg “Ejecutar segunda opción”

End Sub

Sub opt_primero()
 ‘Validar de que se haya hecho clic en una ventana de mapa
IF WindowInfo(FrontWindow(), WIN_INFO_TYPE ) <> WIN_MAPPER THEN
NOTE “Debe hacer clic sobre una ventana de mapa”
ELSE
Dim x1 as Float
Dim y1 as Float

x1 = CommandInfo(CMD_INFO_X )
y1 = CommandInfo(CMD_INFO_Y )
NOTE “Coordenas (X,Y) ” & x1 & y1

END IF

End Sub

Sub opt_segundo()
 ‘Validar de que se haya hecho clic en una ventana de mapa
IF WindowInfo(FrontWindow(), WIN_INFO_TYPE ) <> WIN_MAPPER THEN
MANUAL DE MAPBASIC

NOTE “Debe hacer clic sobre una ventana de mapa”


ELSE
Dim x1 as Float
Dim y1 as Float
Dim x2 as Float
Dim y2 as Float

x1 = CommandInfo(CMD_INFO_X )
y1 = CommandInfo(CMD_INFO_Y )
x2 = CommandInfo(CMD_INFO_X2 )
y2 = CommandInfo(CMD_INFO_Y2 )
NOTE “Coordenadas 1 (X,Y) ” & x1 & “-” & y1 & “ Coordenadas 2 (X,Y) ” & x2 & “ - ” & y2

END IF

End Sub

Sub opt_tercero()
 ‘Validar de que se haya hecho clic en una ventana de mapa
IF WindowInfo(FrontWindow(), WIN_INFO_TYPE ) <> WIN_MAPPER THEN
NOTE “Debe hacer clic sobre una ventana de mapa”
ELSE
Dim newobj as Object
newobj = CommandInfo(CMD_INFO_CUSTOM_OBJ)
END IF
End Sub

3.4 Cuadros de dialogo

Los cuadros de dialogo permiten al usuario interactuar con la aplicación. Con la finalidad te tomar los
datos ingresados para luego ejecutar su lógica y mostrar el resultado.
Diálogos estándar

NOTE. Muestra un mensaje con el texto indicado.

Sintaxis:

NOTE <texto>

 ASK(). Muestra un mensaje con dos botones, un botón aceptar y otro cancelar. Se utiliza
mayormente cuando se quiere preguntar al usuario si se va a ejecutar o cancelar una acción.
MANUAL DE MAPBASIC

Sintaxis:

 ASK (“Texto mensaje”, “Texto Aceptar”, “Texto Cancelar”)

Como resultado después de su ejecución retorna un tipo lógico verdadero si se hizo clic en el botón
correspondiente a Aceptar caso contrario retorna falso.
FILEOPENDLG() y FILESAVEASDLG() . Muestra una ventana de dialogo para abrir o guardar un
archivo.
Sintaxis:

FileOpenDlg(ruta_directorio, nombre_archivo, tipo_archivo, titulo)

FileSaveAsDlg(ruta_directorio, nombre_archivo, tipo_archivo, titulo)

Ruta_directorio: Ruta del directorio donde se inicia por defecto.


Nombre_archivo: Nombre del archivo sugerido para buscar o guardar.
Tipo_archivo: Tipo del archivo a abrir. Ver cuadro tipos de archivo.
Titulo: Titulo del cuadro de diálogo.
Tipos de archivo:

Parametro Tipo_archivo Tipo de archivo

 “TAB” Tabla de MapInfo

 “WOR” Espacio de trabajo de MapInfo

 “MIF” Formato de MapInfo en modo texto

 “DBF” Archivo dBase o compatible

 “XLS” Archivo de Microsoft Excel

 “TXT” Archivos de texto

Diálogos personalizados

Los cuadros de dialogo personalizados permiten crear interfaces a medida. Para ello MapBasic cuenta
con una serie de controles para ingreso, selección entre otras.
MANUAL DE MAPBASIC

nuestro servidor solo se podrá crear una tabla representable con coordenadas x e y. Para ello
usaremos la sentencia Server Create Map.
Sintaxis:

Server ConnectionNumber Create Map


For linked_table
Type { MICODE columnname | XYINDEX columnname | SPATIALWARE }
CoordSys...
[ MapBounds { Data | Coordsys | Values ( x1 , y1 )( x2 , y2 )} ]
[ ObjectType { Point | Line | Region | ALL } ]
[ Symbol (...) ]
[ Linestyle Pen(...) ]
[ Regionstyle Pen(...) Brush(...) ]
[ Style Type style_number [ Column column_name ] ]
ConnectionNumber; Id de la conexión en la cual se está trabajando.
Linked_table; Nombre de la tabla a vincular.

Ejemplo:

Código:

 ‘Este ejemplo hace una tabla del servidor representable.


 ‘El servidor no tiene componente espacial
Dim tk  as String
Dim cs as String
Dim idConnect as Integer

 ‘Establecer los valores para el Toolkit y cadena de conexión


tk = “ODBC”
cs = “DSN=DSN_Sample;UID=olibert;PWD=secreto”
idConnect = Server_connect(tk, cs)
Server idConnect Create Map For "tb_Programacion" Type XYINDEX
("COORDENADA_X","COORDENADA_Y") CoordSys Earth Projection 1, 0 mapbounds data
ObjectType Point Symbol (34,16711680,9)

 ‘Este ejemplo hace una tabla del servidor representable.


 ‘El servidor tiene componente espacial
Dim tk  as String
Dim cs as String
Dim idConnect as Integer

 ‘Establecer los valores para el Toolkit y cadena de conexión


tk = “ODBC”
cs = “DSN=DSN_Sample;UID=olibert;PWD=secreto”
idConnect = Server_connect(tk, cs)
Server idConnect Create Map For "tb_Programacion" Type SPATIALWARE
MANUAL DE MAPBASIC

"SW_GEOMETRY") CoordSys Earth Projection 1, 0 mapbounds data ObjectType All Symbol


(35,0,12) LineStyle Pen (1,2,0) RegionStyle Pen (1,2,0) Brush (2,16777215,16777215)

7.5 Vincular, desvincular tablas

MapInfo Professional se puede vincular a tablas de una base de datos. Al vincular una tabla del
servidor lo que hace MapInfo Professional es descargar una copia de la tabla del servidor en el disco
del cliente. Si la tabla del servidor se ha hecho representable entonces además de bajar los datos
también se podrá trabajar la tabla como una capa de MapInfo, si no se ha hecho representable solo
se podrán bajar los datos. Para vincular tablas del servidor desde MapBasic se utiliza la sentencia
Server Link Table, de igual manera para quitar el vínculo de una tabla se utiliza la sentencia UnLink

Sintaxis:

Server ConnectionNumber Link Table


SQLQuery
Into TableName
Toolkit toolkitname
[ File FileSpec ]
[ ReadOnly ]
[ Autokey { Off | On }]
ConnectionNumber; Id de la conexión establecida.
SQLQuery; Cadena con la consulta SQL SELECT a realizar.
TableName; Nombre de la tabla en MapInfo Professional.
ToolkitName: Cadena que identifica la interface remota.
FileSpec; Cadena con la ruta del archivo donde se descargaran los datos.

UnLink TableName 

TableName; Nombre de la tabla en MapInfo Professional.

Ejemplo:

Código:

 ‘Este ejemplo vincula una tabla del servidor y la muestra en MapInfo Professional
Dim tk  as String
Dim cs as String
Dim idConnect as Integer

 ‘Establecer los valores para el Toolkit y cadena de conexión


tk = “ODBC”
cs = “DSN=DSN_Sample;UID=olibert;PWD=secreto”
idConnect = Server_connect(tk, cs)
Server idConnect Link Table "select * from tb_programacion" toolkit "ODBC" into
"tb_Programacion" File "C:\tb_Programacion.TAB" Autokey ON

 ‘Este ejemplo quita el vinculo de una tabla vinculada previamente


MANUAL DE MAPBASIC

UnLink "tb_Programacion"

Nota: Para que una tabla vinculada pueda ser editada y actualizada debe contener una clave
primaria.
7.6 Refrescar datos

 Al trabajar con conexión a bases de datos, MapInfo Professional permite que varios usuarios puedan
estar visualizando y modificando una tabla al mismo tiempo. En este escenario si queremos obtener la
última versión de los datos, en MapBasic tendríamos que ejecutar la sentencia Server Refresh.
Sintaxis:

Server Refresh TableName 

TableName; Nombre de la tabla en MapInfo Professional de la cual se quieren obtener la última


versión.
Ejemplo:

Código:

 ‘Este ejemplo hace una tabla del servidor representable


Dim tk  as String
Dim cs as String
Dim idConnect as Integer

 ‘Establecer los valores para el Toolkit y cadena de conexión


tk = “ODBC”
cs = “DSN=DSN_Sample;UID=olibert;PWD=secreto”
idConnect = Server_connect(tk, cs)
Server idConnect Link Table "select * from tb_programacion" toolkit "ODBC" into
"tb_Programacion" File "C:\tb_Programacion.TAB" Autokey ON

Server Refresh “tb_Programacion”

7.7 Conexión DBMS Con BBDD Espacial

Como ya lo habíamos indicado antes MapInfo se puede conectar a bases de datos con componente
espacial o sin él. En este punto mostraremos las herramientas que se utilizan cuando se trabaja con
bases de datos que incluyen componente espacial.
Easyloader

Esta herramienta de MapInfo Professional permite cargar una tabla de MapInfo (.TAB) en una base de
datos espacial. Para ello realicen los siguientes pasos:
1.  Abra una tabla representable de MapInfo.
2. En el menú herramientas haga clic en EasyLoader, sino aparece vaya al administrador de
herramientas busque EasyLoader y marque los cuadros de Carga y automático.
MANUAL DE MAPBASIC

1. Ingresar al administrador corporativo de SQL Server.


2. Crear una base de datos con el nombre que desee, para el ejemplo le pondremos BDSpatial.
3. En el analizador de consultas de SQLServer ejecutar el siguiente script.

Código:

 ‘Cambia a la base de datos BDSpatial


USE BDSpatial
 ‘Ejecuta el procedimiento almacenado para crear espacios en la base de datos.
EXEC sp_spatialize_db

4. Crear una tabla con los campos que guste, con clave primaria y agregar al final los campos
SW_GEOMETRY (ST_SPATIAL) y MI_STYLE (VARCHAR(254)).

Código:

 ‘Crea una tabla normal con las columnas para hacerla espacial.
CREATE TABLE tabSpatial
(CODIGO INT PRIMARY KEY,
NOMBRE  VARCHAR(50),
SW_GEOMETRY ST_SPATIAL,
MI_STYLE  VARCHAR(254))

5. Ejecutar la siguiente sentencia para crear espacios en la tabla tabSpatial recientemente


creada.

Código:

 ‘Ejecuta el procedimiento que hace la tabla espacial.Sintaxis:


 ‘EXEC sp_sw_spatialize_column ‘<owner>’, ‘<tablename>’, ‘<spatialcolumn>’, ‘<keycolumn>’
EXEC sp_sw_spatialize_column 'dbo','tabSpatial','sw_geometry','codigo'

6. Si se ejecuto correctamente el procedimiento se creara la tabla auxiliar:


tabSpatial#t#SW_GEOMETRY#t#CODIGO

Terminados estos pasos ya podemos trabajar con esta tabla desde MapInfo para crear y/o modificar
objetos.

8. Integración con otros leguajes de programación:


MapInfo Professional puede ser controlado desde otras aplicaciones y no solamente desde MapBasic.
Por ejemplo puede ser controlado desde una aplicación construida en Visual Basic. Este tipo de
aplicaciones integran los elementos de MapInfo Professional dentro de los elementos de la aplicación,
para lograr esto MapInfo crea una instancia nueva que se ejecuta junto con la aplicación.
MANUAL DE MAPBASIC

8.1 Estableciendo la conexión con la instancia de MapInfo

Para crear un nuevo proyecto con integración a MapInfo Professional debe realizar los siguientes
pasos:
1. Cree un nuevo proyecto de Visual Basic .Net
2. Haga clic derecho sobre el proyecto y luego Agregar referencia.
3. En cuadro de dialogo referencia haga clic en la ficha COM.
4. Busque y seleccione la referencia MapInfo 9.5 OLE Automation Type Library  y haga clic
en Aceptar.
Comando Set Application Window

Por medio de este comando le indicamos a MapInfo Professional cual será la aplicación o ventana
sobre la cual responderán sus cuadros de dialogo.
Comando Set Next Document Parent

Por medio de este comando podemos embeber una ventana (Ventana de Mapa, listado, presentación,
etc.) de MapInfo Professional dentro de un control de Visual Basic de tipo contenedor (Panel).

8.2 Envíos de comandos y consultas a MapInfo desde VB6.0, .NET

Comando Do

Permite enviar una instrucción MapBasic para que se sea ejecutada por la instancia embebida de MapInfo
Professional.
Sintaxis:

mapInfoApp.Do <Instrucción MapBasic>

mapInfoApp; Instancia de MapInfo Professional.


Instrucción MapBasic; cadena con la instrucción MapBasic a ejecutar.

Ejemplo:

Funcion Eval

Permite ejecutar una instrucción MapBasic en la instancia de MapInfo Professional y a la vez retornar
un valor.
Sintaxis:

res = mapInfoApp.Eval(<Instrucción MapBasic> )

mapInfoApp; Instancia de MapInfo Professional.


res; Objeto con el tipo de dato que retorna la función Eval.
Instrucción MapBasic; cadena con la instrucción que debe ejecutarse para retornar el valor
requerido.
Integrando barras de herramientas y menús de MapInfo en .NET

Para realizar la integración de las barras de herramientas y menús de MapInfo usaremos la instrucción
Run Menu Command la cual permite simular la selección de un menú o botón de comando.
MANUAL DE MAPBASIC

Sintaxis:

Run Menu Command <idComando> 

idComando; Id del comando a ejecutar. Para saber el ID de un comando de MapInfo Professional lo


podemos averiguar abriendo el archivo menu.def   que se encuentra en el directorio de MapBasic. A
continuación se muestran algunos IDs que se encuentran en este archivo:

 Archivo menu.def:
Define M_TOOLS_SELECTOR 1701 ‘Seleccionar
Define M_TOOLS_RECENTER 1702 ‘Mover
Define M_TOOLS_EXPAND 1705 ‘Acercar
Define M_TOOLS_SHRINK 1706 ‘Alejar

8.3 Uso de los métodos CallBack

 A veces que cuando trabajamos con la integración de mapas en una aplicación Visual Basic,
necesitamos ejecutar acciones cuando se lanza un evento. MapInfo Professional provee de métodos
que actúan como eventos para capturarlos es necesario implementar las funciones de la clase
MapInfoCallBack el cual lo podemos encontrar en el directorio Integrated Mapping el cual a su vez se
encuentra dentro del directorio Samples de MapBasic.
Para implementar esta Interface podemos usar la palabra clave Implements  luego de la declaración
de la clase en la que vamos a programar la implementación. Se crearan automáticamente los tres
métodos que nos brinda MapInfo Professional.
Ejemplo:

Código:
Public Class Form1
Implements MapInfo.MiPro.Samples.IM.ICallbackNotify

#Region "Notify"
Public Sub OnMenuItemClick(ByVal id As UInteger) Implements
MapInfo.MiPro.Samples.IM.ICallbackNotify.OnMenuItemClick
'Sucede cuando se hace clic en un menú
End Sub
Public Sub OnStatusBarTextChanged(ByVal text As String) Implements
MapInfo.MiPro.Samples.IM.ICallbackNotify.OnStatusBarTextChanged
'Sucede cuando cambia el texto de la barra de estado
End Sub
Public Sub OnWindowContentsChanged(ByVal windowId As UInteger) Implements
MapInfo.MiPro.Samples.IM.ICallbackNotify.OnWindowContentsChanged
'Sucede cuando cambia el contenido de una ventana
End Sub
#End Region
End Class

También podría gustarte