Usuário com melhor resposta
String Sql e o limite de caracteries

Pergunta
-
Estou passando uma string de consulta SQL com mais de 255 caracteries para um Recorset atraves do
.OpenRecorset(string).
Quando depuro o codigo a string é cortada até o limite de 255 caracteries, o resto fica tudo perdido!!!
Quem é que não aceita mais de 255 char é a string, a instrução SQL ou o metodo OpenRecordSet?
Como posso passar para um RecordSet uma consulta SQL de mais de 255 caracteries ?
Valeu pela atenção galera!
Abraão Alves - Um eterno estudantesegunda-feira, 6 de julho de 2009 14:48
Respostas
-
Não existe este limite no OpenRecordset.
Não consegui reproduzir. Poste o código que está utilizando. Esta mensagem de erro que você falou ("parâmetros insuficientes") ocorre quando o nome de um campo do string sql não confere com o nome que está na tabela.
Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br- Marcado como Resposta Luiz Cláudio - MVPModerator quarta-feira, 8 de julho de 2009 18:55
terça-feira, 7 de julho de 2009 03:06Moderador -
Caro Abraão,
já passei por esse problema inúmeras vezes! Como o colega Luiz Cláudio disse, esse limite do OpenRecordset não existe, o que existe é um limite na janela do depurador. O erro que está dando é na sintaxe do select e não no seu tamanho...
Tente dividir, só para testar, o select em 2 ou 3 variáveis, pegue o conteúdo e junte tudo no construtor de consultas do access. Isso vai lhe ajudar a encontrar o erro. Se você confia que o select está correto, pode ser só um a falta de um espaço ou o esquecimento de uma vírgula, etc., coisa bem simples que às vezes passam desapercebidas.
Espero ter ajudado!
Sucesso...
- Marcado como Resposta Abraão Alves quarta-feira, 8 de julho de 2009 12:44
quarta-feira, 8 de julho de 2009 09:57
Todas as Respostas
-
Não tenho certeza absoluta, mas me parece que no nepurador há este limite, o que não significa que o programa esteja assumindo apenas perte da string.
Ou seja:
su string está sendo passada inteiramente para o recordset, mas quando você captura ela no depurador, ele só pega os 256 caracteres...segunda-feira, 6 de julho de 2009 17:24 -
Desculpa descordar de vc Valmir,
mas quando passo a string para o metodo OpenRecordSet sempre dá erro!!:
"Erro3061 : Parametros Insuficientes. ram esperados 1. !"
E isso não acontece quando a minha string é menor !!
De qualquer forma obrigado pela atenção.
E de quebra, testa ai vc mesmo uma consulta 'select' com varias filtros na clausula 'where' e depois me diz o resultado, oK
Abraão Alves - Um eterno estudanteterça-feira, 7 de julho de 2009 01:22 -
Não existe este limite no OpenRecordset.
Não consegui reproduzir. Poste o código que está utilizando. Esta mensagem de erro que você falou ("parâmetros insuficientes") ocorre quando o nome de um campo do string sql não confere com o nome que está na tabela.
Luiz Cláudio Cosenza Vieira da Rocha - http://msmvps.com/blogs/officedev - IT Lab www.itlab.com.br- Marcado como Resposta Luiz Cláudio - MVPModerator quarta-feira, 8 de julho de 2009 18:55
terça-feira, 7 de julho de 2009 03:06Moderador -
Em lugar de chamar Set RS = Db.OpenRecordset("SELECT...."), monte a consulta em uma string e chame Set RS = Db.OpenRecordset(SuaString).
SuaString = "SELECT Campo1, Campo2, ..., CampoN "
SuaString = SuaString & "FROM SuaTabela "
SuaString = SuaString & "WHERE SeuCampo = " & SuaVarNum
Fica muito mais fácil de visualizar.
Bem aventurados os pessimistas: eles fazem backups!!!terça-feira, 7 de julho de 2009 16:09 -
Caro Abraão,
já passei por esse problema inúmeras vezes! Como o colega Luiz Cláudio disse, esse limite do OpenRecordset não existe, o que existe é um limite na janela do depurador. O erro que está dando é na sintaxe do select e não no seu tamanho...
Tente dividir, só para testar, o select em 2 ou 3 variáveis, pegue o conteúdo e junte tudo no construtor de consultas do access. Isso vai lhe ajudar a encontrar o erro. Se você confia que o select está correto, pode ser só um a falta de um espaço ou o esquecimento de uma vírgula, etc., coisa bem simples que às vezes passam desapercebidas.
Espero ter ajudado!
Sucesso...
- Marcado como Resposta Abraão Alves quarta-feira, 8 de julho de 2009 12:44
quarta-feira, 8 de julho de 2009 09:57 -
Mil desculpas galera!!
Havia uma unica letra de um campo escrita incorretamente!!!
Isso mesmo Valmir e Luiz, era erro de BIOS !
Utilizei a dica do Osmar e dei uma arrumadinha no codigo, ficou até mais bonito! E deu para perceber de cara o erro !
Enfim, sei que SQL com VBA é trabalhoso, ainda mais quando o depurador não ajuda !
Muito obrigado pela atenção galera!!
Abraão Alves - Um eterno estudantequarta-feira, 8 de julho de 2009 12:37