|
Postada em 25/08/2004 15:24 hs
Fala pessoal, estou com um problema com o ADO quando eu executo a seguinte linha: ADORst.Open "SELECT MAX(CODIGO) AS ULTIMO FROM TABELA", conn Acontece que esse select pode retornar Null, se nao tiver registros. Eu ja tentei: if ADORst("Ultimo") = Null then e nao funcionou. Alem disso, o ADORst.recordcount sempre retorna -1. O EOF dá sempre false. O que eu faço?
|
|
|
|
Keyo
|
CURITIBA PR - BRASIL
|
|
Postada em 25/08/2004 15:52 hs
A questão do -1 e porque provavelmente a tabela consultada nao tem uma chave primaria e entao nao se consegue usar a propriedade recordcount. Quanto ao retornar null trate assim if adorst.eof = true then msgbox "A coisa tá feia porque não tem registros",vbinformation,"Azedou" adorst.close exit sub end if T+ desculpe eu tinha esquecido o recordset aberto ahahahahah!!!!!!!
|
TÓPICO EDITADO
|
|
|
|
|
Postada em 25/08/2004 16:20 hs
Quanto ao fato de nao ter chave primaria vc está certo, mas isso eu nao posso mudar. Quanto ao eof, nao adianta pq sempre dá false... Mas o pior de todos é o valor null do campo... como eu disse eu fiz um if if ADORst("Ultimo") = Null then e ele caiu no else; eu troquei a condiçao por if ADORst("Ultimo") <> Null then e ele TAMBEM caiu no else... vai entender!!!
|
|
|
|
Postada em 25/08/2004 17:41 hs
Olá tenta assim: antes de abrir a conexão coloca isso: CnnADO.CursorLocation = adUseClient
depois vc testa a propriedade RecorCount se = 0 caso contrário SELECT MAX(codigo)..... grita aí se deu certo ou não.....
|
|
|
|
Postada em 25/08/2004 21:21 hs
teste se o recordset está vazio antes de passar o conteudo para algum controle if rs.eof or rs.bof then exit sub end if mande uma resposta de confirmação!
|
|
|
Burro
|
PRESIDENTE PRUDENTE SP - BRASIL
|
|
Postada em 26/08/2004 01:14 hs
Eu sempre faço assim: IF NOT CONSULTA.EOF THEN IF ISNULL(CONSULTA(0)) THEN ULTIMOCODIGO = 1 ELSE ULTIMOCODIGO = CONSULTA(0) ENDIF ELSE ULTIMOCODIGO = 1 ENDIF t+
|
|
|