Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-03-2007
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 19
halizia Va por buen camino
PHP y postgresql

Hola!!

tengo una base de datos en postgresql y necesito consultar de unas vistas, el nombre de las vistas lo creo dinámicamente con PHP, pero a veces esas vistas no existen, (ya que son vistas que recuperan datos de la bd, y hay dias en lo que no hay datos y por eso no existen) pero al consultar alguna vista que no esta creada:
warning: g_query() [function.pg-query]: Query failed: ERROR: no existe la relacion «ism_values_1091»

quisiera saber cómo puedo saber si la vista existe o no antes de ejecutar la consulta y me de el warning.


Saludos!!
Responder Con Cita
  #2  
Antiguo 14-03-2007
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Hola:

Yo lo veo de dos formas:
  1. Cada motor de base de datos maneja o controla los errores, en este caso debería develver un número que identifique que el objeto no existe, de esta forma podrías capturarlo desde Php.
  2. Lo otro es usar bloques de captura de error como se hace en delphi (Try...Except)
Hasta Luego .-
__________________
No todo es como parece ser...
Responder Con Cita
  #3  
Antiguo 14-03-2007
halizia halizia is offline
Miembro
 
Registrado: abr 2006
Posts: 116
Poder: 19
halizia Va por buen camino
puedes poner un ejemplo??
Gracias!
Responder Con Cita
  #4  
Antiguo 14-03-2007
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Código PHP:
function asignarProfesor ($dbh,$codasig,$nomasig){
    
    global 
$mensaje;
    
    foreach (
$_REQUEST['borrar'] as $keyRun => $run) {
         
         
$result $dbh->prepare("insert into sig_profesor_asignatura 
                                      (id_asignatura_cso,run_prof,hrs_prof_asig)
                                          values (?,?,?)"
);
            
        
$run quita_guionrun($run);         
            
$datos = array($codasig,$run,0);
            
            
$result $dbh->execute($result,$datos);
            
            if (
PEAR::isError($result)) {
            
            if (
$result->getCode() == -3)
                
$mensaje 'Ha seleccionado un profesor que ya existe RUN:'.$run;
            else
                
$mensaje $result->getDebugInfo();
                
            
$flagError 1;
            break;
        }
       }
       if (
$flagError == 0) {
           
$nomasig strtolower($nomasig);
           
header ("Location: asig_prof_asignatura.php?codasig=$codasig&nomasig=$nomasig");
           exit;
       }

Aquí capturo el error de registro duplicado, para capturar un error de un objeto inexiste es similar ya que cada motor de base de datos devuelve un número constante del error provocado.

Me imagino si haces una consulta sobre dicha vista sobre un Front-End para PostgreSQL devería mostrarte un error en caso de no encontrarlo, acompañado del código y una descripción, cada motor de base de datos lo hace, por lo menos con los que he trabajado (Oracle, MS-SQL Server, MySQL).

Con lo que te he entregado ya tienes como investigar....

Hasta Luego .-
__________________
No todo es como parece ser...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
postgresql y delphi erfoncho Conexión con bases de datos 4 15-07-2007 06:29:19
postgreSQL 8.0 + eñe gustavoh Conexión con bases de datos 0 13-02-2006 03:48:49
Firebird - PostgreSQL wod Conexión con bases de datos 8 18-11-2005 22:21:50
Informes PostgreSQL daly Conexión con bases de datos 0 13-10-2005 18:00:50


La franja horaria es GMT +2. Ahora son las 01:29:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi