Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Relaciones MySQL

Discusión sobre la creación de nuevos modulos
Ecocare Web Master
Novato
Mensajes: 5
Registrado: Jue, 11/10/2012, 17:34

Relaciones MySQL

Mensaje por Ecocare Web Master »

Hola que tal.

Actualmente me encuentro realizando un modulo especial para mi emprsa, ya hice el modulo descriptor, pero requiero na nueva tabla en la base de datos y que este relacionada con una ya existente en la del sistema (para una relación 1 a varios).

En el wiki dice que use los archivos de "install/mysql/tables" como ejemplo pero estos archivos no los encuentro.

Segun el wiki requiero el archivo de la tabla y el archivo tipo .key (ni idea que es) pero me resulta dificil y no quiero entrar a modificar la tabla al mysql pues eso no seria practico en caso de que tuviese que desinstalar y reinstalar el sistema.

Como creo o mando crear la tabla y sus relaciones para despues llamarlas en el descriptor?? ademas esto me será de mucha utilidad pues este es el primero de varios modulos que necesitaré.

Agradezco cualquier ayuda...

Ecocare Web Master
Novato
Mensajes: 5
Registrado: Jue, 11/10/2012, 17:34

Mensaje por Ecocare Web Master »

Amigos del foro, ya logre hacer lo mencionado arriba, pero ahora cuando quiero ver si fuinciono activo el módulo y obtengo esto:

"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1,'','Cuentas Financieras','w',)' at line 1"

la verdad no se bien que significa ni como corrgirlo, alguien puede ayudarme?

gracias

Avatar de Usuario
marcosgdf
Jedi
Mensajes: 772
Registrado: Vie, 20/07/2012, 14:42
Ubicación: Valladolid, España

Mensaje por marcosgdf »

Hola Jorge,

Antes de nada, lo primero que me sorprende es que intentes hacer un módulo para Dolibarr sin tener conocimiento en MySQL.

El error que te dice es que la sintaxis de la query es incorrecta. Como puedes ver en el extracto que MySQL ha escogido para mostrarte el error, hay una coma después de 'w,' que no tiene nada después, esto quiere decir o que has añadido algo de más o que hay un campo que no has completado.

Un saludo.
Desarrollador con categoría Almirante de Dolibarr.
¿Quiere soporte personalizado? Contacte conmigo.

Ecocare Web Master
Novato
Mensajes: 5
Registrado: Jue, 11/10/2012, 17:34

Mensaje por Ecocare Web Master »

Gracias por tu aporte, la verdad si tengo conocimiento de MySQL pero esta muy muy reducido pues solo lo he usado de manera visual con el Workbench, por lo que el código de repente me desconcierta

Ya cheque lo que me dijiste y si tenia 1 coma de mas en uno de mis archivos .sql (el de la tabla), sin embargo ya corregido el error sigue apareciendo y según lo que me dijiste la coma esta despues de "w". Lo gracioso es que en ninguno de los archivos tengo una "w".

Honestamente creo que debe ser un error diferente, obviamente en la sintaxis pero aun así sigo verificando

Ecocare Web Master
Novato
Mensajes: 5
Registrado: Jue, 11/10/2012, 17:34

Mensaje por Ecocare Web Master »

Avanzando en la investigación de mi error ya he encontrado el posible error, este esta en el archivo llx_mitabla.key.sql que es en el cual agrago los constraints y las forign keys.

Llegue a esto pues al checar el raiza de la base de datos (/bin/mysql/data) encontre que si existia mi tabla, quiere decir que el script de crear tabla si fucniona, lo cual solo deja a data.sql y al llx_mitabla.key.sql con error, pero el data.sql esta en el wiki de Dolibarr asi que dudo que ese sea el error, por lo que me deja el ya mencionado llx_mitabla.key.sql

ALTER TABLE llx_cuentas_financieras ADD INDEX idx_cuentasfinancieras_fk_movbank (movimiento_bancario);

ALTER TABLE llx_cuentas_financieras ADD CONSTRAINT fk_movbank FOREIGN KEY (rowid) REFERENCES llx_bank (rowid);
ALTER TABLE llx_cuentas_financieras ADD CONSTRAINT fk_montbank FOREIGN KEY (amount) REFERENCES llx_bank (amount);

eso es lo que tengo escrito y el posible error que me marcaba, el problema es que no se que es lo que esta mal, alguen si sabe??

como siempre gracias por aunque sea leerme...

Avatar de Usuario
marcosgdf
Jedi
Mensajes: 772
Registrado: Vie, 20/07/2012, 14:42
Ubicación: Valladolid, España

Mensaje por marcosgdf »

Hola Jorge,

No estoy seguro de haberte entendido.

Si MySQL te dice este error "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1,'','Cuentas Financieras','w',)' at line 1"", busca entre los archivos .sql que tienes el extracto "Cuentas Financieras','w',".

Si te dice es error es imposible que se refiera a los índices de las tablas. Entiende que si Dolibarr funciona perfectamente antes de haber tocado nada, no puede ser un error de Dolibarr.

Un saludo.
Desarrollador con categoría Almirante de Dolibarr.
¿Quiere soporte personalizado? Contacte conmigo.

farchacon
Novato
Mensajes: 4
Registrado: Mié, 21/02/2018, 15:49

Mensaje por farchacon »

Tengo un problema similar. He configurado un modulo para Registrar y uno para Actualizar datos. Los datos que se ingresan, se registran perfectamente, pero al intentar actualizar me aparece ese error:

Código: Seleccionar todo

Error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' asignaciones = '', deducciones = '', netocobrar = '', totaltrabajador = '', fec' at line 1


He desarrollado varios CRUD con las tablas todas en varchar, int, con fk, sin fk, con rowid, sin rowid y nada.
este es el SCRIPT de mi tabla.sql:

Código: Seleccionar todo

CREATE TABLE `llx_nomina_recibo_pago_ex` (
  `rowid` int NOT NULL AUTO_INCREMENT  PRIMARY KEY,
  `fk_idtrabajador` varchar(8) NOT NULL,
  `idrecibo` varchar(8) NOT NULL,
  `codigo` varchar(4) NOT NULL,
  `descripcion` varchar(50) NOT NULL,
  `valorauxiliar` varchar(8) NOT NULL,
  `asignaciones` varchar(50) NOT NULL,
  `deducciones` varchar(50) NOT NULL,
  `netocobrar` varchar(50) NOT NULL,
  `totaltrabajador` varchar(50) NOT NULL,
  `fechainicio` date NOT NULL,
  `fechafin` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO llx_nomina_recibo_pago_ex (rowid, fk_idtrabajador, idrecibo, codigo, descripcion, valorauxiliar, asignaciones, deducciones, netocobrar, totaltrabajador, fechainicio, fechafin) VALUES
('','T001','R001','001','descripcioTest','7','1500','250','1250','1250','2018-02-01','2018-02-15'); 
y este el de la tabla.key.sql:

Código: Seleccionar todo

ALTER TABLE llx_nomina_recibo_pago_ex ADD UNIQUE INDEX uk_llx_nomina_recibo_pago_ex(rowid);
--ALTER TABLE llx_nomina_recibo_pago_ex ADD UNIQUE INDEX llx_nomina_recibo_pago_ex(rowid);
ALTER TABLE llx_nomina_recibo_pago_ex ADD INDEX idx_nomina_recibo_pago_ex_fk_idtrabajador (fk_idtrabajador);
trate de adjuntar tambien parte del proyecto que estoy desarrollando, el editor de este post me dice: "Imposible subir el adjunto"

Por favor ayuda, ya lo intente todooo, :o
y veo que es uno de los pocos Post que han respondido respecto a este error

Agradecido de antemano