Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Crear una base de Datos de MS SQL desde Delphi (https://www.clubdelphi.com/foros/showthread.php?t=35118)

agalvan_kit 01-09-2006 01:06:29

Crear una base de Datos de MS SQL desde Delphi
 
Buenas tardes

Tengo una aplicación que estoy haciendo multicompañía, y mi intención es facilitarle al usuario la creación de nuevas empresas sin necesidad de que tengan que entrar a la Consola de MS SQL a crear una BD, por lo que através de un programa administrador estoy haciendo la creación de las empresas.

Ya puedo crear la BD desde Delphi, ejecutando un StoreProcedure, pero generé un script desde SQL con las estructuras de las tablas, los StoreProcedures y Funciones que utilizo y mi intencion es de alguna manera mandarlo a ejecutar desde mi aplicación Delphi. Lo intente a través de un ADOCommand, y de un ADOQuery pero me marca errores...

Alguien pudiera recomendarme por favor una manera de poder hacer esto.

Saludos y gracias de antemano...

luisgutierrezb 01-09-2006 01:16:18

y que errores te genero, yo eh ejecutado algunos scripts en un adoquery y no eh tenido problemas...

otra, como vas a copiar el storeprocedure a la nueva base de datos? tambien puedes usar un adoquery con el createdatabase, desde delphi abres la base de datos master que es la usual y desde ahi creas la otra, despues te "cambias" a la nueva, para crear las tablas y demas

agalvan_kit 01-09-2006 01:24:26

Te pongo un pequeño ejemplo del script donde quiero crear una nueva tabla. El scripit lo tengo en un archivo .TXT que tuve que copiar del .sql que genera la opción "Generate SQL Script" del Server Manager, ya que no lo podia leer por algun motivo:


if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PRUEBA1]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[PRUEBA1]
GO


CREATE TABLE [dbo].[PRUEBA1] (
[Codigo] [varchar] (6) COLLATE Traditional_Spanish_CI_AS NOT NULL ,
[Descripcion1] [varchar] (40) COLLATE Traditional_Spanish_CI_AS NULL ,
[Descripcion2] [varchar] (20) COLLATE Traditional_Spanish_CI_AS NULL ,
) ON [PRIMARY]
GO


Y el error que me marca es "Incorrect syntax near GO"

eibsoft 03-08-2015 21:27:56

Mira muy facil
 
lo que sucede es que cuando generas el Script desde SQL le agrega el GO despues de cada linea que le toca ejecucion

yo lo que hice fue lo siguiente
donde SQL es de tipo TStringlist
Código PHP:


        SQL
->LoadFromFile(camino "update.sql");

        
DM->ConsultaAux->Close();
        
DM->ConsultaAux->SQL->Clear();

        for (
int i=0SQL->Counti++)
        {
          
Cadena SQL->Strings[i];

          if (
CompareStr(Trim(Cadena), "GO") != 0)
            
DM->ConsultaAux->SQL->Add(Cadena);
          else
          {
            
DM->ConsultaAux->ExecSQL();
            
DM->ConsultaAux->SQL->Clear();
          }


asi fue como resolvi. espero te ayude
saludos


La franja horaria es GMT +2. Ahora son las 10:39:00.

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