Category Archives: Uncategorized

Excluindo todas as tabelas de um banco de dados relacional

Padrão

Excluir as tabelas de um banco pode ser uma tarefa difícil quando elas estão ligadas por chaves estrangeiras.

O artigo que achei na internet tem um script muito louco que remove as ligações e apaga os dados:

DECLARE @Sql NVARCHAR(500) DECLARE @Cursor CURSOR

SET @Cursor = CURSOR FAST_FORWARD FOR

SELECT DISTINCT sql = 'ALTER TABLE [' + tc2.TABLE_NAME + '] DROP [' + rc1.CONSTRAINT_NAME + ']'

FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS rc1

LEFT JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc2 ON tc2.CONSTRAINT_NAME =rc1.CONSTRAINT_NAME

OPEN @Cursor FETCH NEXT FROM @Cursor INTO @Sql

WHILE (@@FETCH_STATUS = 0)

BEGIN

Exec SP_EXECUTESQL @Sql

FETCH NEXT FROM @Cursor INTO @Sql

END

CLOSE @Cursor DEALLOCATE @Cursor

GO

EXEC sp_MSForEachTable 'DROP TABLE ?'

GO

Se quiser apagar somente os dados:
http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/MSSQLServer/delete-all-data-in-database-when-you-hav

Fonte:
http://social.msdn.microsoft.com/forums/en-US/transactsql/thread/a512be8a-376f-4fc9-8243-78dbdbe59e55/

Componentes customizados no Flash Builder

Padrão

Digamos que você já está crescido o suficiente para criar componentes personalizados usando Flex. Então agora está na hora de customizar esses componentes no Flash Builder!

Você tem a possibilidade de fazer com que o Flash Builder reconheça seu componente, oferecendo a customização dinâmica do mesmo através da aba de propriedades do componente no modo visual.

Segue o tutorial da Adobe; http://www.adobe.com/devnet/flash-builder/articles/design-view-extensions-faq.html

SoapException

Padrão

Agora que estou trabalhando com webservices e flex, me deparei com uma situação interessante.
O Flex não conseguia detectar corretamente qual a exceção tinha sido lançada no web service.

Depois de muita algumas pesquisas no forum da Adobe e no Google, acabei achando um link que salvou a pátria:
http://blogs.sparknettech.com/blog/2007/10/31/flex-webservice-error-handeling/

O problema, segundo o blog da SparkNET Technologies, é um bug no Flex.
Ainda segundo o blog, o Flex não reconhece exceções com status code acima de 200;
Então a solução é abaixar o status code da resposta do soap toda vez que for uma exception.

No caso da linguagem C#, basta editar o arquivo Global.asax acrescentando a instrução:

    protected void Application_EndRequest(object sender, EventArgs e)
    {
        if (Context.Response.StatusCode == 500 || Context.Response.StatusCode == 300)
        {
            Context.Response.StatusCode = 200;
        }

Para lançar a exceção no C#:

throw new SoapException("Mensagem Enviada do Servidor", SoapException.ClientFaultCode);