Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-05-2007
nachoalbano nachoalbano is offline
Miembro
 
Registrado: sep 2006
Posts: 19
Poder: 0
nachoalbano Va por buen camino
Query con sentencia GO

Que tal a todos, estoy tratando de cerrar un sistema para entregar y me encuentro con este problema con el sql. Antes que nada les comento que es lo que estoy usando. Delphi 7 con SQLServer 2000, conexion por ado y componentes TADOQuery (crearBD).
Estoy ejecutando este código


Código Delphi [-]
crearBD.Close;
crearBD.SQL.Clear;
crearBD.SQL.LoadFromFile(PathAplicacion+'\bd.sql');
crearBD.ExecSQL;



pero el archivo bd.sql presenta sentencias GO para delimitar creates entre sp y otros objetos... y es justo ahi donde me tira un error de sintaxis. La misma query en el query analizer anda 10 puntos, pero desde el delphi me tira ese error.
si alguien me puede ayudar, se lo agradezco

este es un pedacito del código de SQL


Código SQL [-]
Create table [dbo].[TipoEstadoCivil]
(
[idEstadoCivil] Integer Identity NOT NULL, Constraint [XPKestcivil] UNIQUE ([idEstadoCivil]),
[descripcion] Varchar(30) NULL,
Primary Key ([idEstadoCivil])
)
go
Create table [dbo].[Modulos]
(
[nombre] Nvarchar(80) NOT NULL,
[descripcion] Varchar(80) NULL,
[idPadre] Integer NULL,
[idModulo] Integer NULL,
Primary Key ([nombre])
)
go
Create table [dbo].[TipoActividad]
(
[idActividad] Integer Identity NOT NULL, Constraint [XPKTipoActividad] UNIQUE ([idActividad]),
[descripcion] Varchar(80) NULL, Constraint [UQ__TipoActividad__0425A276] UNIQUE ([descripcion]),
Primary Key ([idActividad])
)
go

Muchas Gracias de antemano
Responder Con Cita
  #2  
Antiguo 26-05-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
el go solo lo usan el analizador de consultas o el isql para indicar el final de un bloque de sentencias como archivos separados, mi consejo luego de cargar tu
script haz lo siguiente:
Código Delphi [-]
for i:=0 to lineas.count-1 do
begin
  if lineas[i]='GO' then lineas[i] := '';
end;

suerte
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 26-05-2007
nachoalbano nachoalbano is offline
Miembro
 
Registrado: sep 2006
Posts: 19
Poder: 0
nachoalbano Va por buen camino
lo pruebo... pero creo que voy a tener problema con unos create procedure que tengo más abajo en la query... igualmente me diste una idea para resolverlo... pruebo y posteo lo que hice.
gracias man! nos vemos en un rato
Responder Con Cita
  #4  
Antiguo 26-05-2007
nachoalbano nachoalbano is offline
Miembro
 
Registrado: sep 2006
Posts: 19
Poder: 0
nachoalbano Va por buen camino
Tarde un poco en postear pero aca les tengo la solución que encontré a mi problema, gracias droguerman por la orientación!

acá les dejo el código
Código Delphi [-]
                AssignFile(script,PathAplicacion+'\bd.sql'); // script es un TextFile
                reset(script);
                crearBD.SQL.Clear;
                while not eof(script) do
                begin
                    readLn(script,lineaScript);
                    if UpperCase(trim(lineaScript))='GO' then
                    begin
                      try
                        crearBD.ExecSQL;
                      Except
                      end;
                      crearBD.SQL.Clear;
                    end
                    else
                      crearBD.SQL.Add(lineaScript);
                end;

adios amigos
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
Hacer un Query de otro Query francisco260184 SQL 9 10-04-2007 03:46:18
Como hacer referencia a un query dentro de otro query? JuanBCT SQL 2 05-09-2006 18:35:25
Problema entre query y sentencia sql ilichhernandez Conexión con bases de datos 1 17-11-2005 21:00:05
Y continuando con las preguntas....Problema en una sentencia sql con query ilichhernandez Conexión con bases de datos 4 31-10-2005 20:28:38
Como se si una sentencia esta en la query satabel Conexión con bases de datos 1 24-07-2005 21:42:25


La franja horaria es GMT +2. Ahora son las 21:09:39.


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