Hola, los molesto por un problemita que tengo al sincronizar un ABM sencillo sobre un datos_tabla.
Probablemente no sea un bug… pero…
Por lo que veo en el log, los datos estarían bien, pero por algún motivo, el valor booleano de ‘vigente’, se convierte en “” al hacer el insert.
El punto 8 es un punto de debug que ingresé, y luego hay un var_dump de $datos
1. Iniciando componentes... 2. componente(2810): Pantalla de eventos: 'edicion' 3. Procesando eventos... 4. componente(2810): [ inicializar_dependencias ]array ( 0 => 'ci_docentes_cf_hist_edicion', )
componente(2807): Pantalla de eventos: ‘funciones’
componente(2807): [ inicializar_dependencias ]
array (
0 => ‘funciones_cuadro’,
1 => ‘funciones_formulario’,
)componente(2807): [ registrar_evento ] ‘nuevo’ → [ evt__funciones_formulario__nuevo ]
array (
0 =>
array (
‘fecha_inicio’ => ‘2010-06-11’,
‘fecha_fin_original’ => ‘2011-06-10’,
‘id_ordenanza’ => ‘4’,
‘ini_fieldset_funcion’ => NULL,
‘id_funcion_area’ => ‘2’,
‘id_funcion_tipo’ => ‘1’,
‘fin_fieldset_funcion’ => NULL,
‘fecha_fin_real’ => ‘2010-12-02’,
‘observaciones_baja’ => ‘esto es una prueba’,
‘ini_fieldset_materia’ => NULL,
‘id_facultad_carrera’ => NULL,
‘id_carrera_materia’ => NULL,
‘id_materia_dictado’ => NULL,
‘fin_fieldset_materia’ => NULL,
),
)MIRAR $DATOS
array (
‘fecha_inicio’ => ‘2010-06-11’,
‘fecha_fin_original’ => ‘2011-06-10’,
‘id_ordenanza’ => ‘4’,
‘ini_fieldset_funcion’ => NULL,
‘id_funcion_area’ => ‘2’,
‘id_funcion_tipo’ => ‘1’,
‘fin_fieldset_funcion’ => NULL,
‘fecha_fin_real’ => ‘2010-12-02’,
‘observaciones_baja’ => ‘ESTO ES UNA PRUEBA’,
‘ini_fieldset_materia’ => NULL,
‘id_facultad_carrera’ => NULL,
‘id_carrera_materia’ => NULL,
‘id_materia_dictado’ => NULL,
‘fin_fieldset_materia’ => NULL,
‘id_docente’ => 28,
‘vigente’ => false,
)componente(2509): dt_docentes_funciones El registro tiene una estructura incorrecta: El campo ‘ini_fieldset_funcion’ no forma parte de la DEFINICION.
componente(2509): dt_docentes_funciones El registro tiene una estructura incorrecta: El campo ‘id_funcion_area’ no forma parte de la DEFINICION.
componente(2509): dt_docentes_funciones El registro tiene una estructura incorrecta: El campo ‘fin_fieldset_funcion’ no forma parte de la DEFINICION.
componente(2509): dt_docentes_funciones El registro tiene una estructura incorrecta: El campo ‘ini_fieldset_materia’ no forma parte de la DEFINICION.
componente(2509): dt_docentes_funciones El registro tiene una estructura incorrecta: El campo ‘id_facultad_carrera’ no forma parte de la DEFINICION.
componente(2509): dt_docentes_funciones El registro tiene una estructura incorrecta: El campo ‘id_carrera_materia’ no forma parte de la DEFINICION.
componente(2509): dt_docentes_funciones El registro tiene una estructura incorrecta: El campo ‘fin_fieldset_materia’ no forma parte de la DEFINICION.
TABLA: [docentes_funciones]
Nuevo cursor ‘0’ en reemplazo del anterior ‘’
AP_TABLA: [docentes_funciones]
Inicio SINCRONIZAR
************ ABRIR transaccion (upso@localhost) ****************
AP_TABLA: [docentes_funciones]
registro: 0 - INSERT INTO docentes_funciones ( fecha_fin_original, fecha_fin_real, fecha_inicio, id_docente, id_funcion_tipo, id_materia_dictado, id_ordenanza, observaciones_baja, vigente )
VALUES (‘2011-06-10’, ‘2010-12-02’, ‘2010-06-11’, ‘28’, ‘1’, DEFAULT, ‘4’, ‘ESTO ES UNA PRUEBA’, ‘’);Abortando transacción en docentes
************ ABORTAR transaccion (upso@localhost) ****************
Relanzando excepción. exception ‘toba_error_db’ with message 'SQLSTATE[22P02]: Invalid text representation: 7 ERROR: la sintaxis de entrada no es válida para tipo boolean: «»
LINE 2: …-06-11’, ‘28’, ‘1’, DEFAULT, ‘4’, ‘ESTO ES UNA PRUEBA’, ‘’);
^’ in C:\toba_1.4\php\lib\db\toba_db.php:497
Stack trace:
#0 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(727): toba_db->sentencia_ejecutar(0)
#1 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(905): toba_ap_tabla_db->ejecutar_sql(‘INSERT INTO doc…’)
#2 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(513): toba_ap_tabla_db->ejecutar_sql_insert(0)
#3 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(467): toba_ap_tabla_db->insertar_registro_db(0)
#4 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(409): toba_ap_tabla_db->sincronizar_insertados(Array)
#5 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_datos_tabla.php(1522): toba_ap_tabla_db->sincronizar()
#6 C:\toba_1.4\proyectos\docentes\php\docentes_cargos_funciones_historicos\ci_docentes_cf_hist_edicion.php(279): toba_datos_tabla->sincronizar()
#7 C:\toba_1.4\proyectos\docentes\php\docentes_cargos_funciones_historicos\ci_docentes_cf_hist_edicion.php(236): ci_docentes_cf_hist_edicion->funciones_aceptar_datos(Array)
#8 [internal function]: ci_docentes_cf_hist_edicion->evt__funciones_formulario__nuevo(Array)
#9 C:\toba_1.4\php\nucleo\componentes\interface\toba_ci.php(321): call_user_func_array(Array, Array)
#10 [internal function]: toba_ci->registrar_evento(‘funciones_formu…’, ‘nuevo’, Array)
#11 C:\toba_1.4\php\nucleo\componentes\interface\toba_ei.php(278): call_user_func_array(Array, Array)
#12 C:\toba_1.4\php\nucleo\componentes\interface\toba_ei_formulario.php(309): toba_ei->reportar_evento(‘nuevo’, Array)
#13 C:\toba_1.4\php\nucleo\componentes\interface\toba_ci.php(201): toba_ei_formulario->disparar_eventos()
#14 C:\toba_1.4\php\nucleo\componentes\interface\toba_ci.php(201): toba_ci->disparar_eventos()
#15 C:\toba_1.4\php\nucleo\toba_solicitud_web.php(127): toba_ci->disparar_eventos()
#16 C:\toba_1.4\php\nucleo\toba_solicitud_web.php(45): toba_solicitud_web->procesar_eventos()
#17 C:\toba_1.4\php\nucleo\toba_nucleo.php(54): toba_solicitud_web->procesar()
#18 C:\toba_1.4\proyectos\docentes\www\aplicacion.php(25): toba_nucleo->acceso_web()
#19 {main}toba_error_db: SQLSTATE[22P02]: Invalid text representation: 7 ERROR: la sintaxis de entrada no es válida para tipo boolean: «» LINE 2: …-06-11’, ‘28’, ‘1’, DEFAULT, ‘4’, ‘ESTO ES UNA PRUEBA’, ‘’); ^ [trAZA]exception ‘toba_error_db’ with message ‘SQLSTATE[22P02]: Invalid text representation: 7 ERROR: la sintaxis de entrada no es válida para tipo boolean: «» LINE 2: …-06-11’, ‘28’, ‘1’, DEFAULT, ‘4’, ‘ESTO ES UNA PRUEBA’, ‘’); ^’ in C:\toba_1.4\php\lib\db\toba_db.php:497 Stack trace: #0 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(727): toba_db->sentencia_ejecutar(0) #1 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(905): toba_ap_tabla_db->ejecutar_sql(‘INSERT INTO doc…’) #2 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(513): toba_ap_tabla_db->ejecutar_sql_insert(0) #3 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(467): toba_ap_tabla_db->insertar_registro_db(0) #4 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_ap_tabla_db.php(409): toba_ap_tabla_db->sincronizar_insertados(Array) #5 C:\toba_1.4\php\nucleo\componentes\persistencia\toba_datos_tabla.php(1522): toba_ap_tabla_db->sincronizar() #6 C:\toba_1.4\proyectos\docentes\php\docentes_cargos_funciones_historicos\ci_docentes_cf_hist_edicion.php(279): toba_datos_tabla->sincronizar() #7 C:\toba_1.4\proyectos\docentes\php\docentes_cargos_funciones_historicos\ci_docentes_cf_hist_edicion.php(236): ci_docentes_cf_hist_edicion->funciones_aceptar_datos(Array) #8 [internal function]: ci_docentes_cf_hist_edicion->evt__funciones_formulario__nuevo(Array) #9 C:\toba_1.4\php\nucleo\componentes\interface\toba_ci.php(321): call_user_func_array(Array, Array) #10 [internal function]: toba_ci->registrar_evento(‘funciones_formu…’, ‘nuevo’, Array) #11 C:\toba_1.4\php\nucleo\componentes\interface\toba_ei.php(278): call_user_func_array(Array, Array) #12 C:\toba_1.4\php\nucleo\componentes\interface\toba_ei_formulario.php(309): toba_ei->reportar_evento(‘nuevo’, Array) #13 C:\toba_1.4\php\nucleo\componentes\interface\toba_ci.php(201): toba_ei_formulario->disparar_eventos() #14 C:\toba_1.4\php\nucleo\componentes\interface\toba_ci.php(201): toba_ci->disparar_eventos() #15 C:\toba_1.4\php\nucleo\toba_solicitud_web.php(127): toba_ci->disparar_eventos() #16 C:\toba_1.4\php\nucleo\toba_solicitud_web.php(45): toba_solicitud_web->procesar_eventos() #17 C:\toba_1.4\php\nucleo\toba_nucleo.php(54): toba_solicitud_web->procesar() #18 C:\toba_1.4\proyectos\docentes\www\aplicacion.php(25): toba_nucleo->acceso_web() #19 {main}
Mensaje a usuario: SQLSTATE[22P02]: Invalid text representation: 7 ERROR: la sintaxis de entrada no es válida para tipo boolean: «»
LINE 2: …-06-11’, ‘28’, ‘1’, DEFAULT, ‘4’, ‘ESTO ES UNA PRUEBA’, ‘’);
^Configurando dependencias para responder al servicio…
componente(2810): Pantalla de servicio: ‘edicion’
componente(2810): [ callback ] ‘conf__edicion’ no fue atrapado
componente(2807): Pantalla de servicio: ‘funciones’
componente(2807): [ callback ] ‘conf__funciones’ no fue atrapado
componente(2807): [ callback ] ‘conf__funciones_cuadro’
componente(2807): [ callback ] ‘conf__funciones_formulario’
Se filtro el evento: modificacion
Se filtro el evento: eliminar
Se filtro el evento: cancelar
componente(2810): [ callback ] ‘conf__ci_docentes_cf_hist_edicion’ no fue atrapado
Respondiendo al servicio__generar_html…
Es un ingreso de un nuevo dato… con el evento nuevo según el siguiente código:
<?php...
function evt__funciones_formulario__nuevo($datos)
{
$this->funciones_aceptar_datos($datos);
}
function evt__funciones_formulario__eliminar()
{
$this->dep('docentes_funciones')->eliminar_todo();
$this->funciones_resetear();
}
function evt__funciones_formulario__modificacion($datos)
{
$this->funciones_aceptar_datos($datos);
}
function evt__funciones_formulario__cancelar()
{
$this->funciones_resetear();
}
function funciones_resetear()
{
$this->dep('docentes_funciones')->resetear();
}
function funciones_aceptar_datos($datos)
{
$datos['id_docente'] = $this->s__id_docente;
$datos['vigente'] = false;
toba::logger()->debug('MIRAR $DATOS');
toba::logger()->var_dump($datos);
$this->dep('docentes_funciones')->set($datos);
$this->dep('docentes_funciones')->sincronizar();
$this->funciones_resetear();
}
Cabe aclara que el evento vigente tiene valor por defecto 0, pero está desactivado en el formulario.
Probé haciendo $datos[‘vigente’] = false… y $this->dep(‘docentes_funciones’)->set_columna_valor(‘vigente’, false)… y tampoco funcionó.
Mil gracias de antemano?