martes, 17 de enero de 2012

MYSQL: FOREIGN KEY (clave foránea)

La sentencia para añadir a una columna una clave ajena es la siguiente:

ALTER TABLE CRMACL ADD FOREIGN KEY (ACLEMP) REFERENCES CRMEMP(EMPIDE)

Hay que tener cuidado de que la columna de origen y la de destino tengan exactamente la misma configuración, y que ambas tablas hayan sido creadas con el motor InnoDB.

miércoles, 23 de marzo de 2011

MYSQL: importar una tabla en el proveedor de hosting 1and1

Partimos de una tabla en un servidor mysql local; lo que queremos es subir esta tabla a una base de datos ofrecida por nuestro proveedor de hosting, en este caso 1and1.

Primeramente hemos exportado nuestra tabla desde el administrador de mysql con una consulta de este tipo:

> mysqldump -p --user=root --add-drop-table crm crmemp > crmemp.txt

Si no devuelve ningún mensaje se habrá creado con éxito el archivo de comandos.

Ahora, dentro de la web de administración de 1and1, abrimos el gestor de MySql y seleccionamos la base de datos pertinente. Nos vamos al botón de SQL y le damos a "importar archivos".

Si seleccionamos el archivo y le damos a importar, es probable que nos devuelva un error del tipo:

consulta SQL:

--
-- Table structure for table `crmemp`
--
DROP TABLE IF EXISTS `crmemp`

MySQL ha dicho:

#1046 - No database selected

Con lo que si añadimos en el archivo .txt al principio la sentencia USE nombreBaseDatos al principio nos permitirá hacerlo.

OJO: a veces el volcado puede generar caracteres extraños que no aparezcan en el archivo; si arroja errores, asegurarse de que la consulta que está ejecutando no tiene caracteres raros.

miércoles, 2 de marzo de 2011

Primeros pasos con OpenGL

Usando mi Macbook Blanco Intel dual core 1.83Ghz, Ubuntu 10.10, Eclipse 3.5.2 y openGL (lenguaje C++):

- Instalar el plugin para eclipse de C/C++
- Instalar los paquetes freeglut3 y freeglut3-dev desde el repositorio
- Crear un proyecto nuevo
- En propiedades del proyecto -> C/C++ Build -> Settings -> GCC C++ Linker -> Libraries hay que añadir GLU y glut.

miércoles, 19 de enero de 2011

VISUAL BASIC 6: Trabajar con Strings

Function Len (s as string) as integer

----> Devuelve la longitud del string

Function Mid (s as string, posicionInicio as integer [, longitud as integer]) as string

----> Devuelve una subcadena

Function Left (s as string, longitud as integer) as string

----> Devuelve la subcadena empezando por la izquierda de longitud especificada

Function Right (s as string, longitud as integer) as string

----> Devuelve la subcadena empezando por la derecha de longitud especificada

Function Ucase (s as string) as string

----> Devuelve una cadena en mayúsculas

Function Lcase (s as string) as string

----> Devuelve una cadena en minúsculas

Function Instr ([inicio as integer,] s1 as string, s2 as string)

----> Devuelve la posición de s2 en s1, 0 si no existe.

Function InstrRev (s1 as string, s2 as string [,inicio as integer] )

----> Devuelve la posición de s2 en s1, 0 si no existe, empezando por el final.

Sub Replace (s1 as string, s2 as string, s3 as string)

----> Reemplaza en s1 todas las ocurrencias de s2 por s3.

Function StrReverse (s as string) as string

----> Devuelve s al revés.

Function LTrim(s as string) as string

----> Devuelve s sin los espacios del principio.

Function RTrim(s as string) as string

----> Devuelve s sin los espacios del final.

Function Trim(s as string) as string

----> Devuelve s sin los espacios del final y del principio.

Function asc(s as string) as integer

----> Devuelve el valor ascii del primer carácter de s.

Function Chr (i as integer) as char

----> Devuelve el carácter que corresponde a un valor ascii.

jueves, 28 de octubre de 2010

MYSQL: Modificar el tipo de datos de un campo

ALTER TABLE tabla
CHANGE COLUMN nombre_columna nombre_nuevo_columna tipo_datos atributos;

jueves, 14 de octubre de 2010

VISUAL BASIC 6: Leer de un archivo Excel 2003

Primero añadimos la referencia al Microsoft Excel 11.0 Object Library en Proyecto -> Referencias.

A continuación con el siguiente código abrimos la ruta a un fichero excel y leemos o escribimos en él con:

'Variable de tipo Aplicación de Excel
Dim objExcel As Excel.Application

'Una variable de tipo Libro de Excel
Dim xLibro As Excel.Workbook
Dim Col As Integer, Fila As Integer

'creamos un nuevo objeto excel
Set objExcel = New Excel.Application

'Usamos el método open para abrir el archivo que está en el directorio del programa llamado archivo.xls
Set xLibro = objExcel.Workbooks.Open(Path)

'Hacemos referencia a la Hoja

Dim i As Integer

Fila = 5
Col = 3
MsgBox xLibro.Sheets("Hoja1").Cells(Fila, Col)


xLibro.Close (True)

VISUAL BASIC 6: interfaz para elegir un archivo.

En nuestro proyecto Visual Basic 6 debemos añadir en Project -> Components el Microsoft Common Dialog Control 6.0 que nos permitirá abrir diálogos para elegir archivos. Veremos que aparece un botón nuevo en nuestra barra de componentes y arrastramos uno hasta nuestro form. El nombre por defecto es CommonDialog1.

Una vez añadido, el siguiente código nos abre una ventana para seleccionar un archivo con un filtro determinado:

'Añadir un filtro al dialog de elegir archivo
Private Sub AddFilter(ByVal dlg As CommonDialog, ByVal _
filter_title As String, ByVal filter_value As String)

Dim txt As String

txt = dlg.Filter
If Len(txt) > 0 Then txt = txt & "|"
txt = txt & filter_title & " (" & filter_value & ")|" & _
filter_value
dlg.Filter = txt

End Sub

Después, asociamos a un evento el siguiente código:

AddFilter CommonDialog1, "Excel files", "*.xls"
CommonDialog1.ShowOpen
Path = CommonDialog1.FileName

En la variable path tendremos la ruta al archivo.