locked
Erro 26 RRS feed

  • Pergunta

  • ola

    ao fazer fazer um delete no meu banco de dados da-me esta mensagem:

    O banco de dados está num pc em rede.

    Nele tenho o SQL server e SQL server Broswer ligados em Network service (O SQL server Agent não dá pois estou com a versão Express).

    Tenho o TCP/IP, Shared Memory e Named pipes ligados.

    Se escrever, apagar ou actualizar pequenos volumes de dados não dá erro.

    Agora se fizer um delete de um grand volume de dados ele apresenta o erro acima.

    Porque?


    terça-feira, 7 de agosto de 2012 18:12

Respostas

Todas as Respostas

  • Boa tarde,

    A mensagem já diz, não foi possível estabelecer conexão com servidor, Verfique o nome da instância ou se o servidor está aceitando conexões remotas.

    terça-feira, 7 de agosto de 2012 18:24
  • Se executar este código no pc que tem o banco de dados ele já não dá erro.

    Por isso acho que deve ser um problema de rede, mas só se mostra quando as operações são grandes...

    o que acham?

    valeu

    terça-feira, 7 de agosto de 2012 18:24
  • Por isso mesmo, como você está colocando no SSMS? Na opção 'Server name'.
    terça-feira, 7 de agosto de 2012 18:26
  • Server name? agora não estou lembrando onde acedo a esse informação :/

    Onde vejo isso....

    Mas se fizer um update, delete ou insert pequeno ele não dá erro.... estranho né?

    valeu

    terça-feira, 7 de agosto de 2012 18:50
  • Haaa já entendi o que cria :)

    Deu-me uma branca

    No campo server name pus: Nome do PC\Nome da instancia

    A ver se consigo explicar.

    Para todos os forms, onde tenho que fazer pequenos update, deletes e select uso esta string:

    "Data Source=Nome do pc;Initial Catalog=nome da tabela;User Id=teste;Password=5teste;"

    Agora, apra o form onde tenho que fazer um grande insert e delete uso esta string, pois a anteriro dava erro:

    "Data Source=Nome do pc\Nome da instancia;Initial Catalog=nome da tabela;User Id=teste;Password=5teste;"

    esquisito né?

    Com esta configuração funciona tudo no pc onde tenho o banco instalado.

    Agora se for num pc de rede dá erro com a segunda string.

    valeu

    terça-feira, 7 de agosto de 2012 22:57
  • depois de pesquisar lembrei-me da firewall do windows.

    Então já dei permisão para o SQL server e sql server broswer.

    E o erro mudou :)

    Agora é este:

    Este erro só acontece no pc cliente.

    Desliguei os named pipes, pois acho que eles não são necessários, né?

    quarta-feira, 8 de agosto de 2012 01:43
  • Fernando para organizar e me entender melhor:

    Neste momento tenho a instância RTT com o banco de dados CCB. Nesse banco de dados tenho várias tabelas.

    AS minhas configurações são as seguintes:

    Sql Server 2008 R2 Express

    Win xp

    Vou mostrar como tenho o SQL Server Configuration Manager:

    SQL Service Service:

    • SQL Server (RTT): LocalSystem/Start
    • SQL Server Browser: LocalSystem/Start
    • SQL Server Reporting Services (RTT) NetworkService/Start
    • SQL Full-Text Filter Daemon Launcher (RTT): LocalSystem/Start

    Protocols for RTT:

    • Shared Memory - Enabled
    • TCP/IP - Enabled
    • Named Pipes - Disabled
    • Via - Disabled

    Client Protocols

    • Shared Memory - Disabled
    • TCP/IP - Disabled
    • Named Pipes - Disabled
    • Via - Disabled

    A nivel de contas no SSMS tenho a conta sa, criada por defeito no momento da instalação e tenho uma conta teste, que foi criada pelo sa (apos instalação)

    O que estou achando esquisito é que tenho que usar duas strings diferentes, uma para pequeno volumes de dados e outra na janela onde faço um grande insert de dados :/

    Duas string:

    • "Data Source=Nome do pc;Initial Catalog=nome da tabela;User Id=teste;Password=5teste;"
    • "Data Source=Nome do pc\Nome da instancia;Initial Catalog=nome da tabela;User Id=teste;Password=5teste;"

    Usando estas configurações todas, se fizer um pequeno insert/update/select ele funciona beleza.

    Agora se fizer um grande insert/update/select (que é com a segunda string) le fica muito lento e acaba por dar erro:

    Mas escreve na base de dados, não acaba é o insert todo :/

    Neste momento estou achando que ou me falta activar alguma coisa no Sql server ou estou com alguma falta de permisão para o user teste.

    Desculpe o relatório :)

    Valeu

    quarta-feira, 8 de agosto de 2012 09:26
  • Bom dia, 

    Já tentou deixar a segunda string apenas com o nome do servidor?

    DE

    "Data Source=Nome do pc\Nome da instancia;Initial Catalog=nome da tabela;User Id=teste;Password=5teste;" 

    -

    PARA

    "Data Source=Nome do pc;Initial Catalog=nome da tabela;User Id=teste;Password=5teste;"

    []'s

    quarta-feira, 8 de agosto de 2012 12:34
  • Já,

    E da este erro no pc onde tenho o SQL server:

    A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

    Ele chega a escrever, mas não escreve todos os dados. Ex. são 5000 linhas ele só regista 3000

    Mas se usar esta string para um insert/update/select mais pequeno ele já funciona :/
    • Editado Jonas.8 quarta-feira, 8 de agosto de 2012 12:46
    quarta-feira, 8 de agosto de 2012 12:43
  • Me diz uma coisa,

    Nesse exemplo que usou, INSERT de um grande número de registros, poderia me dizer quanto seria esse 'grande número'?

    quarta-feira, 8 de agosto de 2012 12:49
  • 5000 linhas com 20 colunas cada
    quarta-feira, 8 de agosto de 2012 12:49
  • Bom dia,

    Tenta fazer 2 inserts, um com 999 registros e outro com 1001 registros, e retorne com uma posição.

    []'s

    quarta-feira, 8 de agosto de 2012 12:52
  • queria evitar isso,

    por tenho que alterar o código todo...e posso ficar com erros.

    Porque que não dá?

    é por ser express?

    quarta-feira, 8 de agosto de 2012 12:55
  • Fiz com 3300 linhas e deu :/
    quarta-feira, 8 de agosto de 2012 12:57
  • Puxa... esta-me a intrigar isto...

    Do pc cliente tmbm já dá...Do pc cliente por vezes dá erro 40 :/

    • Editado Jonas.8 quarta-feira, 8 de agosto de 2012 13:02
    quarta-feira, 8 de agosto de 2012 12:58
  • Outra que estou descobrindo.

    O SSMS tem que estar ligado, senão este insert não funciona. Fica muitooooo lento...

    quarta-feira, 8 de agosto de 2012 13:22
  • ta ai,

    Se não deu problema em 3300 linhas, creio que o problema não seja de conexão se não nem esses 3,300 linhas seriam inseridas, é necessário analisar a partir do erro, paro na 3300, verifique a linha a seguir se a sintaxe e os values estão de acordo com a table, seria interessante você colocar o procedimento que está fazendo na sua aplicação.

    []'s

    quarta-feira, 8 de agosto de 2012 13:44
  • Desisto, vou instalar a versão acima...

    Obrigado por tudo

    quarta-feira, 8 de agosto de 2012 13:48