none
Problemas com String SQL para banco Progress RRS feed

  • Pergunta

  • Bom dia,

    Estou efetuando um SELECT em um banco Progress, mas o banco utiliza colunas com "-" e o  C# não reconhece a string gerando um erro.

    String sql = "SELECT * FROM PUB.item WHERE it-nr-ordem = @ordem"

    System.Data.Odbc.OdbcException: 'ERROR [42S22] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Column "IT" cannot be found or is not specified for query. (13865)'

    Alguém conseguiria me ajudar?


    segunda-feira, 15 de outubro de 2018 13:40

Respostas

  • Boa tarde,

    Não tenho nenhuma experiência com o PostGreSQL mas pesquisando rapidamente me parece que é necessário delimitar os nomes dos objetos com aspas duplas quando os mesmos contem hífen, e nesse caso também se torna necessário utilizar maiúsculas e minúsculas conforme utilizado no momento em que foram criados os objetos. Ex:

    string sql = @"SELECT * FROM ""PUB.ord-produto"" WHERE ""nr-ordem-prod"" = @ordem";

    obs: foram utilizadas 2 aspas duplas seguidas dentro da string para obter 1 aspas duplas

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta AndreMoreira1554 terça-feira, 16 de outubro de 2018 14:21
    segunda-feira, 15 de outubro de 2018 19:50

Todas as Respostas

  • Boa tarde,

    Talvez o problema não seja esse que você citou, mas experimente fazer um teste dessa forma:

    String sql = @"SELECT * FROM PUB.item WHERE it-nr-ordem = @ordem"

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 15 de outubro de 2018 17:14
  • Blz, vou tentar aqui.
    segunda-feira, 15 de outubro de 2018 18:04
  • Boa tarde,

    Fiz o teste e nada, aparece o seguinte erro:

    System.Data.Odbc.OdbcException: 'ERROR [42S02] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Table/view/synonynm "PUB.ORD" cannot be found. (15814)'

    a tabela que preciso era outra, segue o sql.

    string sql = @"SELECT * FROM PUB.ord-produto WHERE nr-ordem-prod = @ordem";


    segunda-feira, 15 de outubro de 2018 19:06
  • Boa tarde,

    Não tenho nenhuma experiência com o PostGreSQL mas pesquisando rapidamente me parece que é necessário delimitar os nomes dos objetos com aspas duplas quando os mesmos contem hífen, e nesse caso também se torna necessário utilizar maiúsculas e minúsculas conforme utilizado no momento em que foram criados os objetos. Ex:

    string sql = @"SELECT * FROM ""PUB.ord-produto"" WHERE ""nr-ordem-prod"" = @ordem";

    obs: foram utilizadas 2 aspas duplas seguidas dentro da string para obter 1 aspas duplas

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta AndreMoreira1554 terça-feira, 16 de outubro de 2018 14:21
    segunda-feira, 15 de outubro de 2018 19:50
  • Bom dia,

    Vou tentar aqui.

    Obg.

    terça-feira, 16 de outubro de 2018 13:22
  • Obrigado gapimex, deu certo aqui.
    terça-feira, 16 de outubro de 2018 14:21