Jump to content
Negrito

ASP + MySQL - Paginação e Ranking

Recommended Posts

Olá Pessoal, 

 

Converti o banco de dados de uma app em ASP Classico de MSSQL para MySQL para redução de custos e percebi que alguns componentes ou recursos não estão mais funcionando devido a não compatibilidade com o MySQL , como por exemplo a função : RecordCount

 

Já consegui converter e atualizar 95% de aplicação para rodar com o MySQL, mas tem 1 item que esta tirando meu sono e após dias pesquisando, resolvi pedir ajuda.

 

Segue o meu codigo abaixo , onde estou com problema no resultado dessa operação:

 

<%

...

Set RS = Server.CreateObject("ADODB.Recordset")

RS.CursorLocation = 3
RS.CursorType = 3
RS.ActiveConnection = Cn

RS.Open strSQL, Cn, 3, 3

RS.PageSize = 25
RS.CacheSize = RS.PageSize
intPageCount = RS.PageCount
intRecordCount = RS.RecordCount

    If NOT (RS.BOF AND RS.EOF) Then

If CInt(intPage) > CInt(intPageCount) Then intPage = intPageCount
    If CInt(intPage) <= 0 Then intPage = 1
        If intRecordCount > 0 Then
            RS.AbsolutePage = intPage
            intStart = RS.AbsolutePosition
            If CInt(intPage) = CInt(intPageCount) Then
                intFinish = intRecordCount
            Else
                intFinish = intStart + (RS.PageSize - 1)
            End if
        End If
    If intRecordCount > 0 Then
        For intRecord = 1 to RS.PageSize

    QntExibicoes = QntExibicoes + Rs.fields("views")

...

%>

 

 

Já percebi que a função RecordCount não pode ser usada com o MySQL ou pelo menos não é compativel.

 

A paginação esta funcionando ! 

Porem , não consigo fazer ele calcular a quantidade de linhas (rows) do MySQL com a função RecordCount e acredito que possa ter alguma outra função que não esta compativel , mas como não conheço MySQL , não posso afirmar.

 

Enfim, algum pode me dar uma luz ?

 

Desde já agradeço pela atenção.

 

Obrigado.

Share this post


Link to post
Share on other sites

Finalmente, após algumas semanas, consegui concluir a migração do MS-SQL para MySQL , não foi facil e adianto que quem deseja fazer isso, pense 2x, pois não basta mudar apenas o banco de dados, existem muitas funções que não são compativeis e vão exigir reajustes e adaptações.

 

Resumindo, tbm tive que avaliar toda a programação ASP do site!

 

Por um lado, foi muito bom, pois consegui otimizar muitos recursos que estavam desatualizados :smile:

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By landerbadi
      Olá pessoal
       
      Tenho uma tabela mysql chamada “poesias” com os seguintes campos (id,autor,poesia) e uma outra tabela chamada “palavras” com os seguintes campos (id,palavra,ocorrencias).
       
      Na tabela poesias eu cadastrei uma serie de poesias, e na tabela palavras eu cadastrei uma lista de palavras.
       
      Eu preciso fazer com que o php pegue as palavras cadastradas na tabela palavra e grave no campo ocorrências as quantidades de vezes que determinada palavra aparece na tabela poesias.
       
      Alguém sabe como fazer isso?
       
    • By TeixeiraRamos
      Por favor,
      Tenho uma Procedure que facilitará muito a inserção da "data_ano_liturgico" e os respectivos  "dias_semanas "
      O resultado seria preencher o campo "data_ano_liturgico" iniciando em 2021-11-21 até 2022-12-31 com os respectivos dias da semana, como já informei. 
      Editando a procedure:
      tem em:
      Nome da rotina: adicionar_data
      Tipo:  PROCEDURE
      Parâmetros :  Direção: IN , Nome: data_inicio, Tipo: DATE
                                               IN,, Nome: Intervalo, Tipo: INT
      BEGIN DECLARE var_data DATE; DECLARE var_dia VARCHAR(50); DECLARE contador INT DEFAULT 0; SET var_data = data_inicial; SET var_dia = DAYNAME(data_inicial); WHILE contador < intervalo DO INSERT INTO tb_ano_liturgico(data_ano_liturgico, dias_semanas) VALUES (var_data, var_dia); SET contador = contador + 1; SET var_data = DATE_ADD(data_inicial, INTERVAL contador DAY); SET var_dia = DAYNAME(var_data); END WHILE; END $$ DELIMITER ; Call adicionar_datas(‘2021-11-21’, 399); Qual o erro que apresenta:
       
      Não sei onde estou errando.
    • By Kefatif
      Prezados, bom dia.
       
      Preciso da ajuda dos Srs!
       
      Não estou conseguindo localizar o erro no arquivo abaixo.
       
      Ao clicar no botão ele me envia a mensagem: "Erro ao registrar estoque !"
       
      Poderiam me ajudar?
       
      Agradeço desde já pela ajuda.
       
      <?php include_once 'autenticacao.php'; include_once'../../conexao.php'; include_once '../../funcoes.php'; include_once '../../decodepost.php'; if( !isset($_POST["cont"]) or !isset($_SESSION["cnes"]) ){ ECHO "Erro"; }else{ $cnes = $_SESSION["cnes"]; $idusuario = $_SESSION["idusuario"]; $cont = $_POST["cont"]; $sql = "insert into LESAO_ESTOQUE values(null,curdate(), '".$cnes."',".$idusuario.")"; if(mysqli_query($con, $sql)){ $idestoque = mysqli_insert_id($con); $coberturas = 0; for($i=1 ; $i<=$cont; $i++){ if(isset($_POST[$i])){ if($_POST[$i]<=0){ }else{ $qtd = $_POST[$i]; $sqlqtd = "insert into LESAO_REL_ESTOQUE_COBERTURAS values(".$idestoque.", ".$i.", ".$qtd.", ".$idusuario.")"; if(mysqli_query($con, $sqlqtd)){ $coberturas = $coberturas+1; } } } } $grav = "Registrado estoque de ".$coberturas." coberturas !"; }else{ $grav = "Erro ao registrar estoque !"; } //5- Fechar a conexão mysqli_close($con); ?> <script> alert('<?php echo $grav; ?>'); location.href="estoque-registrar.php"; </script> <?php } ?>  
    • By Negrito
      Olá,
       
      Estou quebrando a cabeça com o recurso Session_OnStart , pois eu gostaria que algumas paginas/arquivos .asp tivessem exceções.
       
      Criei o Global.ASA com o seguinte contexto:
       
      <SCRIPT RUNAT=Server Language="VBScript">
      Sub Session_OnStart
        startPage = "/default.asp"
        currentPage = Request.ServerVariables("SCRIPT_NAME")
        If strcomp(currentPage,startPage,1) then
          Response.Redirect("/default.asp")
        End If
      End Sub
      </SCRIPT>
       
      Ele funciona perfeitamente, quando tento acessar qualquer pagina ou subdiretorio diretamente pela URL, ele me joga para a pagina inicial.
       
      Porem, eu gostaria de ter exceções em alguns diretorios e paginas .ASP , onde eu gostaria de liberar o acesso direto ao digitar a URL.
       
      Alguem sabe me informar se é possivel ? 
       
      Obrigado.
       
       
    • By tetsuo
      Bom dia pessoal!
      Me orientem aqui, se puderem:
      Estou usando mysql.
      Preciso ordenar Eventos conforme a sequência:
       
      1) os que estão acontecendo: status = started
         (ordem crescente datetime)
      2021-12-07 07:00:00 | started 2021-12-07 08:00:00 | started 2021-12-07 09:00:00 | started  
      2) os que vão acontecer: status = created
         (ordem crescente datetime)
      2021-12-07 13:00:00 | created 2021-12-07 14:00:00 | created 2021-12-07 15:00:00 | created  
      3) os que passaram da data, mas não foram iniciados
         (ordem decrescente datetime)
      2021-12-07 06:00:00 | created 2021-12-07 05:00:00 | created 2021-12-07 04:00:00 | created  
      4) os finalizados: status = finished
         (ordem decrescente datetime)
      2021-12-06 12:00:00 | finished 2021-12-05 17:00:00 | finished 2021-12-04 19:00:00 | finished Estava tentando com case when 
      order by CASE WHEN E.status = 'started' THEN 1 WHEN E.status = 'created' && eventDateTime >= NOW() THEN 2 WHEN E.status = 'created' && eventDateTime < NOW() THEN 3 WHEN E.status = 'finished' THEN 4 ELSE 5 END Mas não sei combinar o THEN 1 + eventDateTime ASC ou DESC
      Será que é possível resolver numa querie só?
      Ou vou ter que fazer 4 consultas distintas?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.