· 5 years ago · Nov 21, 2020, 11:34 PM
1unit UAtualiza_BD;
2
3//Atualização do BD é chamado no Datamodule_Atualização
4//no evento oncreate
5
6interface
7
8uses
9 UUpdadeDataBase.Interfaces, SysUtils, Dialogs, Forms;
10
11type
12 TUpdateDataBase = class(TInterfacedObject, iUpdateDataBase)
13 private
14 FVersaoBD : Integer;
15 procedure Update_0_To_1;
16 procedure Update_1_To_2;
17 procedure Update_2_To_3;
18 procedure MostrarVersaoBD;
19 procedure ExecutaSQL(aValue : String);
20 procedure ExecutaSQLDirect(aValue : String);
21 procedure ExecutaSQLAddColumn(aTable : String; aCampo : String; aTipoCampo : String);
22 procedure ExecutaSQLAlterType(aTable : String; aCampo : String; aTipoCampo : String);
23 procedure ExecutaSQLAlterColumn(aTable : String; aCampo : String; aToCampo : String);
24 procedure ExecutaSQLDropColumn(aTabela : String; aCampo : String);
25 procedure ExecutaSQLDropView(aView : String);
26 procedure ExecutaSQLDropTable(aTable : String);
27 procedure ExecutaSQLCreateView(aView : String; aSQL : String);
28 procedure ExecutaSQLCreateTable(aTable : String; aSQL : String);
29 procedure ExecutaSQLCreateGenerator(aGenerator : String);
30 procedure ExecutaSQLDropGenerator(aGenerator : String);
31 procedure ExecutaSQLCreateStoreProcedure(aProcedure : String; aSQL : String);
32 procedure ExecutaSQLDropStoreProcedure(aProcedure : String);
33 procedure ExecutaSQLDropIndex(aNameIndex : String);
34 procedure ExecutaSQLCreateIndex(aNameIndex : String; aTable : String; aCampo : String);
35
36 public
37 constructor Create;
38 destructor Destroy; override;
39 function Versao(aValue : Integer) : iUpdateDataBase;
40 function UpdateBD : iUpdateDataBase;
41 class function New : iUpdateDataBase;
42 end;
43
44implementation
45
46uses
47 UDataModule_Atualizacao;
48
49{ TUpdateDataBase }
50
51//Atualização do BD é chamado no Datamodule_Atualização
52//no evento oncreate
53
54procedure TUpdateDataBase.Update_0_To_1;
55var
56SQL : string;
57begin
58 //01
59 //efetua atualizações no BD
60
61 ExecutaSQLAddColumn('EMPRESAS', 'VERSAO_BD', 'Integer');
62
63 ExecutaSQLAlterColumn('EMPRESAS', 'CST_PADRAO', 'CST_ICMS_PADRAO');
64 ExecutaSQLAddColumn('EMPRESAS', 'CST_PIS_PADRAO', 'Varchar(10)');
65 ExecutaSQLAddColumn('EMPRESAS', 'CST_COFINS_PADRAO', 'Varchar(10)');
66 ExecutaSQLAddColumn('PRODUTOS', 'Taxa_Comissao', 'Double Precision');
67 ExecutaSQLAddColumn('RESUMO_PEDIDOS', 'FORMA_PAGAMENTO', 'Varchar(50)');
68 ExecutaSQLAddColumn('HISTORICO', 'TIPO_Orc_Ped_NFE', 'Varchar(10)');
69 ExecutaSQLAlterType('PRODUTOS', 'COLECAO', 'Varchar(15)');
70 ExecutaSQLDropColumn('PRODUTOS', 'Abre_Cons_Prod');
71 ExecutaSQLAddColumn('EMPRESAS', 'Abre_Cons_Prod', 'Varchar(3)');
72 ExecutaSQLAddColumn('EMPRESAS', 'ID_UNID_MEDIDA_PADRAO', 'Integer');
73 ExecutaSQLDropColumn('EMPRESAS', 'ID_Forma_Pamento_Entrada_Padrao');
74 ExecutaSQLAddColumn('EMPRESAS', 'ID_Forma_Pagto_Entrada_Padrao', 'Integer');
75 ExecutaSQLAddColumn('USUARIOS', 'Valor_Comissao', 'Double Precision');
76 ExecutaSQLAddColumn('EMPRESAS', 'FORN_CONSULTA_POR', 'Varchar(25)');
77 ExecutaSQLAddColumn('CONDICOES_PAGAMENTO', 'Cartao_Debito_Credito', 'Varchar(8)');
78 ExecutaSQLAddColumn('PEDIDOS', 'STATUS_SAT', 'Varchar(10)');
79 ExecutaSQLAddColumn('CONFIGURA_SAT', 'VERSAO', 'Varchar(5)');
80 ExecutaSQLAddColumn('EMPRESAS', 'ESPACO_BORDA_IMAGE_PRINC', 'Integer');
81 ExecutaSQLAddColumn('PEDIDOS', 'SAT_ANO_MES', 'Varchar(7)');
82 ExecutaSQLAddColumn('PEDIDOS', 'SAT_NOME_ARQUIVO_EMITIDO', 'Varchar(60)');
83 ExecutaSQLAddColumn('PEDIDOS', 'SAT_NUMERO_ID', 'Varchar(15)');
84 ExecutaSQLAlterType('PEDIDOS', 'SAT_NOME_ARQUIVO_EMITIDO', 'Varchar(150)');
85 ExecutaSQLAlterType('CONFIGURA_SAT', 'ARQ_LOG', 'Varchar(200)');
86 ExecutaSQLAlterType('CONFIGURA_SAT', 'IDENTAR_XML', 'Varchar(5)');
87 ExecutaSQLAlterType('CONFIGURA_SAT', 'EH_UTF8', 'Varchar(5)');
88 ExecutaSQLAlterType('CONFIGURA_SAT', 'SALVAR_CFE', 'Varchar(5)');
89 ExecutaSQLAlterType('CONFIGURA_SAT', 'SALVAR_CFE_CANC', 'Varchar(5)');
90 ExecutaSQLAlterType('CONFIGURA_SAT', 'SALVAR_ENVIO', 'Varchar(5)');
91 ExecutaSQLAlterType('CONFIGURA_SAT', 'SEPARAR_CNPJ', 'Varchar(5)');
92 ExecutaSQLAlterType('CONFIGURA_SAT', 'SEPARAR_MES', 'Varchar(5)');
93 ExecutaSQLAlterType('CONFIGURA_SAT', 'MODELO', 'Varchar(200)');
94 ExecutaSQLAddColumn('PEDIDOS', 'SAT_XML_EMITIDO', 'BLOB SUB_TYPE TEXT SEGMENT SIZE 80');
95 ExecutaSQLAlterType('ITENS_PED', 'CSOSN', 'Varchar(10)');
96 ExecutaSQLAlterType('ITENS_PED', 'CFOP', 'Varchar(10)');
97 ExecutaSQLDropColumn('ITENS_PED', 'CST');
98 ExecutaSQLDropColumn('ITENS_PED', 'CRT_Padro');
99 ExecutaSQLDropColumn('ITENS_PED', 'CSOSN_Padrao');
100 ExecutaSQLDropColumn('ITENS_PED', 'CST_ICMS_Padrao');
101 ExecutaSQLDropColumn('ITENS_PED', 'CST_IPI_Padrao');
102 ExecutaSQLDropColumn('ITENS_PED', 'CST_PIS_Padrao');
103 ExecutaSQLDropColumn('ITENS_PED', 'CST_COFINS_Padrao');
104 ExecutaSQLDropColumn('ITENS_PED', 'CST_COFINS_Padrao');
105 ExecutaSQLDropColumn('ITENS_PED', 'CFOP_Padrao');
106 ExecutaSQLAddColumn('ITENS_PED', 'CRT', 'Varchar(10)');
107 ExecutaSQLAddColumn('ITENS_PED', 'CST_ICMS', 'Varchar(10)');
108 ExecutaSQLAddColumn('ITENS_PED', 'CST_IPI', 'Varchar(10)');
109 ExecutaSQLAddColumn('ITENS_PED', 'CST_PIS', 'Varchar(10)');
110 ExecutaSQLAddColumn('ITENS_PED', 'CST_COFINS', 'Varchar(10)');
111 ExecutaSQLAddColumn('ITENS_PED', 'ID_PEDIDO_DEVOLUCAO', 'Integer');
112 ExecutaSQLAddColumn('ITENS_PED', 'ID_CLIENTE_DEVOLUCAO', 'Integer');
113
114 ExecutaSQLAddColumn('PEDIDOS', 'CPF_INFORMADO', 'Varchar(15)');
115 ExecutaSQLAddColumn('PEDIDOS', 'NUM_PESSOAS', 'Integer');
116 ExecutaSQLAddColumn('PEDIDOS', 'NUM_MESA', 'Integer');
117
118 ExecutaSQLAddColumn('EMPRESAS', 'SSLLIB_NFE', 'Varchar(25)');
119 ExecutaSQLAddColumn('EMPRESAS', 'CRYPTLIB_NFE', 'Varchar(25)');
120 ExecutaSQLAddColumn('EMPRESAS', 'HTTPLIB_NFE', 'Varchar(25)');
121 ExecutaSQLAddColumn('EMPRESAS', 'XMLSIGNLIB_NFE', 'Varchar(25)');
122 ExecutaSQLAddColumn('EMPRESAS', 'TENTATIVAS_NFE', 'Integer');
123 ExecutaSQLAddColumn('EMPRESAS', 'TIMEOUT_NFE', 'Integer');
124 ExecutaSQLAddColumn('EMPRESAS', 'SSLTYPE_NFE', 'Varchar(15)');
125 ExecutaSQLAddColumn('EMPRESAS', 'CAMINHO_CERTIFICADO_PFX_NFE', 'Varchar(150)');
126 ExecutaSQLAddColumn('EMPRESAS', 'SENHA_CERTIFICADO_NFE', 'Varchar(150)');
127 ExecutaSQLAddColumn('EMPRESAS', 'VERSAO_WEBSERVICE_NFE', 'Varchar(15)');
128 ExecutaSQLAddColumn('EMPRESAS', 'CONTADOR_NOME', 'Varchar(60)');
129 ExecutaSQLAddColumn('EMPRESAS', 'CONTADOR_EMAIL', 'Varchar(60)');
130 ExecutaSQLAddColumn('EMPRESAS', 'CONTADOR_TELEFONE', 'Varchar(20)');
131 ExecutaSQLAddColumn('CONTAS_PAGAR', 'ID_GRUPO_CONTAS', 'Integer');
132 ExecutaSQLAddColumn('CONTAS_RECEBER', 'ID_GRUPO_CONTAS', 'Integer');
133 ExecutaSQLAlterType('EMPRESAS', 'AMBIENTE_NFE', 'Varchar(15)');
134 ExecutaSQLAddColumn('PRODUTOS', 'ID_ALMOXARIFADO', 'Integer');
135
136 ExecutaSQLDropView('V_PARCELAMENTO');
137 SQL:='';
138 SQL:='CREATE VIEW V_PARCELAMENTO('+
139 'ID_PARCELAMENTO, VALOR, ID_FORMA_PAGAMENTO, DATA_VENCIMENTO, ID_ORC_PED_NFE, '+
140 ' TIPO_ORC_PED_NFE, NOME, ID_COND_PAGAMENTO '+
141 ') AS '+
142 ' SELECT P.ID_PARCELAMENTO, P.VALOR, P.ID_FORMA_PAGAMENTO, P.DATA_VENCIMENTO, P.ID_ORC_PED_NFE, '+
143 ' P.Tipo_Orc_Ped_NFE, CP.NOME, CP.ID_COND_PAGAMENTO'+
144 ' FROM PARCELAMENTO P'+
145 ' LEFT JOIN CONDICOES_PAGAMENTO CP ON (P.ID_FORMA_PAGAMENTO = CP.ID_COND_PAGAMENTO)';
146 ExecutaSQLCreateView('V_PARCELAMENTO', SQL);
147
148
149 ExecutaSQLDropTable('RESUMO_FINANC_RECEB_A_VISTA');
150 ExecutaSQLDropStoreProcedure('SP_GEN_RES_FIN_REC_A_VISTA_ID');
151 ExecutaSQLDropGenerator('GEN_RES_FIN_REC_A_VISTA');
152 SQL:='';
153 SQL:=' CREATE TABLE RESUMO_FINANC_RECEB_A_VISTA ( '+
154 ' ID_RESUMO Integer PRIMARY KEY, '+
155 ' VALOR_TOTAL Double Precision, '+
156 ' FORMA_PAGAMENTO Varchar(50) ); ';
157 ExecutaSQLCreateTable('RESUMO_FINANC_RECEB_A_VISTA', SQL);
158 ExecutaSQLCreateGenerator('GEN_RES_FIN_REC_A_VISTA');
159 SQL:='';
160 SQL:=' CREATE PROCEDURE SP_GEN_RES_FIN_REC_A_VISTA_ID '+
161 ' RETURNS (ID INTEGER) '+
162 ' AS '+
163 ' BEGIN '+
164 ' ID = GEN_ID(GEN_RES_FIN_REC_A_VISTA, 1); '+
165 ' SUSPEND; '+
166 ' END; ';
167 ExecutaSQLCreateStoreProcedure('SP_GEN_RES_FIN_REC_A_VISTA_ID', SQL);
168
169 ExecutaSQL('UPDATE EMPRESAS SET VERSAO_BD = 1 WHERE ID_EMPRESA > 0');
170 ExecutaSQL('COMMIT WORK');
171 FVersaoBD := 1;
172
173 MostrarVersaoBD;
174
175
176end;
177
178procedure TUpdateDataBase.Update_1_To_2;
179var
180SQL : string;
181begin
182 //02
183 //efetua atualizações no BD
184 SQL:='';
185 SQL:=' CREATE TABLE GRUPOS_CONTAS ( '+
186 ' ID_Grupo_Contas integer PRIMARY KEY, '+
187 ' Nome Varchar(35), '+
188 ' Data_Cadastro Date, '+
189 ' Data_Alteracao Date); ';
190 ExecutaSQLCreateTable('GRUPOS_CONTAS', SQL);
191 ExecutaSQLCreateIndex('GRUPOS_CONTAS_ID_INDEX', 'GRUPOS_CONTAS', 'ID_Grupo_Contas');
192 ExecutaSQLCreateIndex('GRUPOS_CONTAS_NOME_INDEX', 'GRUPOS_CONTAS', 'Nome');
193 ExecutaSQLCreateGenerator('GEN_GRUPOS_CONTAS');
194 SQL:='';
195 SQL:=' CREATE PROCEDURE SP_GEN_GRUPOS_CONTAS_ID '+
196 ' RETURNS (ID INTEGER) '+
197 ' AS '+
198 ' BEGIN '+
199 ' ID = GEN_ID(GEN_GRUPOS_CONTAS, 1); '+
200 ' SUSPEND; '+
201 ' END; ';
202 ExecutaSQLCreateStoreProcedure('SP_GEN_GRUPOS_CONTAS_ID', SQL);
203
204
205 ExecutaSQLAddColumn('NFE', 'ID_FORNECEDOR', 'Integer');
206
207 ExecutaSQL('UPDATE EMPRESAS SET VERSAO_BD = 2 WHERE ID_EMPRESA > 0');
208 ExecutaSQL('COMMIT WORK');
209 FVersaoBD := 2;
210
211 MostrarVersaoBD;
212
213end;
214
215procedure TUpdateDataBase.Update_2_To_3;
216begin
217 //03
218 //efetua atualizações no BD
219
220
221 FVersaoBD := 3;
222
223 MostrarVersaoBD;
224
225end;
226
227constructor TUpdateDataBase.Create;
228begin
229 FVersaoBD := 0;
230 Datamodule_Atualizacao.SDS_Confere.Close;
231 Datamodule_Atualizacao.SDS_Confere.Active:=FALSE;
232 Datamodule_Atualizacao.SDS_Confere.DataSet.Active:=FALSE;
233 Datamodule_Atualizacao.SDS_Confere.DataSet.CommandText:='';
234 Datamodule_Atualizacao.SDS_Confere.DataSet.CommandText:='SELECT * from EMPRESAS WHERE (ID_EMPRESA=1)';
235 Datamodule_Atualizacao.SDS_Confere.Connection:=DataModule_Atualizacao.SQLConnection1;
236 Datamodule_Atualizacao.SDS_Confere.DataSet.Active:=true;
237 Datamodule_Atualizacao.SDS_Confere.Active:=true;
238 Datamodule_Atualizacao.SDS_Confere.Open;
239 FVersaoBD := Datamodule_Atualizacao.SDS_Confere.FieldByName('VERSAO_BD').Value;
240end;
241
242destructor TUpdateDataBase.Destroy;
243begin
244
245 inherited;
246end;
247
248procedure TUpdateDataBase.ExecutaSQL(aValue: String);
249begin
250 try
251 Datamodule_Atualizacao.SP_ID_QUERY.Close;
252 Datamodule_Atualizacao.SP_ID_QUERY.SQL.CommaText:='';
253 Datamodule_Atualizacao.SP_ID_QUERY.SQL.CommaText:=''+aValue;
254 Datamodule_Atualizacao.SP_ID_QUERY.ExecSQL;
255 except on E: Exception do
256 begin
257 Showmessage('Ocorreu um Erro ao Atualizar o Banco de Dados: '+E.ToString);
258 Showmessage('Comando SQL: '+aValue);
259 Application.Terminate;
260 end;
261 end;
262end;
263
264procedure TUpdateDataBase.ExecutaSQLAddColumn(aTable, aCampo, aTipoCampo: String);
265begin
266 ExecutaSQL('EXECUTE block as BEGIN if (NOT EXISTS (Select rdb$relation_name, rdb$field_name from rdb$relation_fields where (rdb$relation_name = '+QuotedStr(UpperCase(aTable))+' AND rdb$field_name = '+QuotedStr(UpperCase(aCampo))+' and rdb$SYSTEM_FLAG = 0) ))'+' then execute statement '+'''ALTER TABLE '+aTable+' ADD '+aCampo+' '+aTipoCampo+''''+';'+' END');
267 ExecutaSQL('COMMIT WORK');
268end;
269
270procedure TUpdateDataBase.ExecutaSQLAlterColumn(aTable, aCampo,
271 aToCampo: String);
272begin
273 ExecutaSQL('EXECUTE block as BEGIN if (EXISTS (Select rdb$relation_name, rdb$field_name from rdb$relation_fields where (rdb$relation_name = '+QuotedStr(UpperCase(aTable))+' AND rdb$field_name = '+QuotedStr(UpperCase(aCampo))+' and rdb$SYSTEM_FLAG = 0) ))'+' then execute statement '+'''ALTER TABLE '+aTable+' ALTER '+aCampo+' TO '+aToCampo+''''+';'+' END');
274 ExecutaSQL('COMMIT WORK');
275end;
276
277procedure TUpdateDataBase.ExecutaSQLAlterType(aTable, aCampo, aTipoCampo: String);
278begin
279 ExecutaSQL('EXECUTE block as BEGIN if (EXISTS (Select rdb$relation_name, rdb$field_name from rdb$relation_fields where (rdb$relation_name = '+QuotedStr(UpperCase(aTable))+' AND rdb$field_name = '+QuotedStr(UpperCase(aCampo))+' and rdb$SYSTEM_FLAG = 0) ))'+' then execute statement '+'''ALTER TABLE '+aTable+' ALTER '+aCampo+' TYPE '+aTipoCampo+''''+';'+' END');
280 ExecutaSQL('COMMIT WORK');
281end;
282
283procedure TUpdateDataBase.ExecutaSQLDropGenerator(aGenerator: String);
284begin
285 ExecutaSQLDirect('EXECUTE block as BEGIN if (EXISTS (Select rdb$generator_name from rdb$generators where (rdb$generator_name = '+QuotedStr(UpperCase(aGenerator))+') ))'+' then execute statement '+'''DROP GENERATOR '+aGenerator+''''+';'+' END');
286 ExecutaSQLDirect('COMMIT WORK');
287end;
288
289procedure TUpdateDataBase.ExecutaSQLDropIndex(aNameIndex: String);
290begin
291 ExecutaSQLDirect('EXECUTE block as BEGIN if (EXISTS (Select rdb$index_name from rdb$indices where (rdb$index_name = '+QuotedStr(UpperCase(aNameIndex))+') ))'+' then execute statement '+'''DROP INDEX '+aNameIndex+''''+';'+' END');
292 ExecutaSQLDirect('COMMIT WORK');
293end;
294
295procedure TUpdateDataBase.ExecutaSQLCreateIndex(aNameIndex, aTable: String;
296 aCampo : String);
297begin
298 ExecutaSQLDirect('EXECUTE block as BEGIN if (NOT EXISTS (Select rdb$index_name from rdb$indices where (rdb$index_name = '+QuotedStr(UpperCase(aNameIndex))+') ))'+' then execute statement '+'''CREATE INDEX '+UpperCase(aNameIndex)+' ON '+UpperCase(aTable)+'( '+UpperCase(aCampo)+' )'+''''+';'+' END');
299 ExecutaSQLDirect('COMMIT WORK');
300end;
301
302procedure TUpdateDataBase.ExecutaSQLCreateGenerator(aGenerator: String);
303begin
304 ExecutaSQLDirect('EXECUTE block as BEGIN if (NOT EXISTS (Select rdb$generator_name from rdb$generators where (rdb$generator_name = '+QuotedStr(UpperCase(aGenerator))+') ))'+' then execute statement '+'''CREATE GENERATOR '+aGenerator+''''+';'+' END');
305 ExecutaSQLDirect('COMMIT WORK');
306end;
307
308procedure TUpdateDataBase.ExecutaSQLDropStoreProcedure(aProcedure: String);
309begin
310 ExecutaSQLDirect('EXECUTE block as BEGIN if (EXISTS (Select rdb$procedure_name from rdb$procedures where (rdb$procedure_name = '+QuotedStr(UpperCase(aProcedure))+') ))'+' then execute statement '+'''DROP PROCEDURE '+aProcedure+''''+';'+' END');
311 ExecutaSQLDirect('COMMIT WORK');
312end;
313
314procedure TUpdateDataBase.ExecutaSQLCreateStoreProcedure(aProcedure,
315 aSQL: String);
316begin
317 ExecutaSQLDirect('EXECUTE block as BEGIN if (NOT EXISTS (Select rdb$procedure_name from rdb$procedures where (rdb$procedure_name = '+QuotedStr(UpperCase(aProcedure))+') ))'+' then execute statement '+QuotedStr(aSQL)+';'+' END');
318 ExecutaSQLDirect('COMMIT WORK');
319end;
320
321procedure TUpdateDataBase.ExecutaSQLCreateTable(aTable, aSQL: String);
322begin
323 ExecutaSQLDirect('EXECUTE block as BEGIN if (NOT EXISTS (Select rdb$relation_name from rdb$relations where (rdb$relation_name = '+QuotedStr(UpperCase(aTable))+' and rdb$SYSTEM_FLAG = 0) ))'+' then execute statement '+QuotedStr(aSQL)+';'+' END');
324 ExecutaSQLDirect('COMMIT WORK');
325end;
326
327procedure TUpdateDataBase.ExecutaSQLCreateView(aView : String; aSQL : String);
328begin
329 ExecutaSQLDirect('EXECUTE block as BEGIN if (NOT EXISTS (Select rdb$relation_name from rdb$relations where (rdb$relation_name = '+QuotedStr(UpperCase(aView))+' and rdb$SYSTEM_FLAG = 0) ))'+' then execute statement '+QuotedStr(aSQL)+' ;'+' END');
330 ExecutaSQLDirect('COMMIT WORK');
331end;
332
333procedure TUpdateDataBase.ExecutaSQLDirect(aValue: String);
334begin
335 try
336 Datamodule_Atualizacao.SQLConnection1.ExecuteDirect(aValue);
337 except on E: Exception do
338 begin
339 Showmessage('Ocorreu um Erro ao Atualizar o Banco de Dados: '+E.ToString);
340 Showmessage('Comando SQL: '+aValue);
341 Application.Terminate;
342 end;
343 end;
344
345end;
346
347procedure TUpdateDataBase.ExecutaSQLDropColumn(aTabela, aCampo: String);
348begin
349 ExecutaSQL('EXECUTE block as BEGIN if (EXISTS (Select rdb$relation_name, rdb$field_name from rdb$relation_fields where (rdb$relation_name = '+QuotedStr(UpperCase(aTabela))+' AND rdb$field_name = '+QuotedStr(UpperCase(aCampo))+' and rdb$SYSTEM_FLAG = 0) ))'+' then execute statement '+'''ALTER TABLE '+aTabela+' DROP '+aCampo+''''+';'+' END');
350 ExecutaSQL('COMMIT WORK');
351end;
352
353
354procedure TUpdateDataBase.ExecutaSQLDropTable(aTable: String);
355begin
356 ExecutaSQL('EXECUTE block as BEGIN if (EXISTS (Select rdb$relation_name from rdb$relations where (rdb$relation_name = '+QuotedStr(UpperCase(aTable))+' and rdb$SYSTEM_FLAG = 0) ))'+' then execute statement '+'''DROP TABLE '+aTable+''''+';'+' END');
357 ExecutaSQL('COMMIT WORK');
358end;
359
360procedure TUpdateDataBase.ExecutaSQLDropView(aView: String);
361begin
362 ExecutaSQL('EXECUTE block as BEGIN if (EXISTS (Select rdb$relation_name from rdb$relations where (rdb$relation_name = '+QuotedStr(UpperCase(aView))+' and rdb$SYSTEM_FLAG = 0) ))'+' then execute statement '+'''DROP VIEW '+aView+''''+';'+' END');
363 ExecutaSQL('COMMIT WORK');
364end;
365
366procedure TUpdateDataBase.MostrarVersaoBD;
367begin
368
369 Showmessage('Atualização De Banco de Dados Efetuada - Versao: '+intToStr(Datamodule_Atualizacao.SDS_Confere.FieldByName('VERSAO_BD').Value) );
370
371end;
372
373class function TUpdateDataBase.New: iUpdateDataBase;
374begin
375 Result := Self.Create;
376end;
377
378function TUpdateDataBase.UpdateBD: iUpdateDataBase;
379begin
380
381 if FVersaoBD = 0 then
382 begin
383 Update_0_To_1;
384 end;
385
386 if FVersaoBD = 1 then
387 begin
388 Update_1_To_2;
389 end;
390
391end;
392
393function TUpdateDataBase.Versao(aValue: Integer): iUpdateDataBase;
394begin
395 Result := Self;
396 FVersaoBD := aValue;
397end;
398
399end.