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.
martes, 17 de enero de 2012
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.
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.
- 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.
----> 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;
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)
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.
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.
Etiquetas:
common dialog,
seleccionar archivo,
visual basic
Suscribirse a:
Entradas (Atom)