Ir para o conteúdo
  1. Re: [PHP] Obter hora e data

    danielfpaiva
    Por danielfpaiva,

    Boa noite,

    Precisava de uma ajuda relacionada com este tópico.

    Necessitava que o mês viesse escrito por extenso (ex: Janeiro, Fevereiro, etc).

    setlocale(LC_TIME, 'Portuguese_Portugal');
    $month = strftime('%B');

    Neste momento estou a utilizar este código no entanto os meses continuam aparecer em Inglês (ex: September).

    Será que alguem me podia ajudar com esta questão?

    Obrigado

     

    Já está resolvida a minha questão obrigado.

    • 6 respostas
  2. Re: Forçar require em display:none

    Rui Carlos
    Por Rui Carlos,

    Podes adicionar o atributo required a qualquer uma das tags input (ou a todas, como recomendado na especificação do HTML5).

    • 3 respostas
  3. Stack Overflow gives an even closer look at developer salaries

    Rui Carlos
    Por Rui Carlos,
    Citação

    [...]

    survey.png

    Some of the broad trends are no big surprise; for example, the chosen cities tend to pay more than their respective nations do, for example, a reflection of both their high demand for developers and their higher living expenses. Similarly, DevOps specialists and data scientists both earn well. This won't surprise anyone who follows the fashionable industry buzzwords; businesses are increasingly working to streamline and integrate their development and operational roles to make regular software deployments easier and more reliable, putting DevOps skills in high demand. Data science is similarly sought after with the growth of machine learning, data mining, and visualization.

    [...]

    Fonte: https://arstechnica.com/gadgets/2017/09/devops-and-data-science-are-the-big-software-dev-money-makers/

    • 0 respostas
  4. Re: Famalicão Extreme Gaming

    PTGAMERLAN
    Por PTGAMERLAN,

    Prémios:

    1º - 350,00€ (em vale de compras)
    2º - Óculos VR
    3º - Experiência de Karting no Indoor Karting Famalicao

    Regras Gerais:
    INSCRIÇÕES GRATUITAS!! 
    Plataforma - PS4
    Horário: Sábado (7 de Outubro) ás 11:00
    Inscrições: São efetuadas no local antes do torneio iniciar
    Limite de 32 participantes.

    Regras Jogo:

    Torneio em double elimination
    Cada ronda têm 60 segundos
    Cada set é jogado à melhor de 3 combates, cada combate é à melhor de 5 rondas.
    O vencedor de um combate (dentro do mesmo set) deve manter a mesma personagem, o perdedor pode mudar.
    Seleção de cenário: aleatória.
    Personagens banidas: nenhuma
    Cenários banidos: nenhum

    • 1 resposta
  5. Como fazer transação commit e rollback?

    Mauro Augusto
    Por Mauro Augusto,

    Bom dia meus caros. 

    Preciso de uma ajuda de como usar o comando Transações commit e rollback no ciclo for.

    Abaixo mando as Instruções.

    For I = 0 To GridViewRegularizar.SelectedRowsCount() - 1
                  If GridViewRegularizar.IsRowSelected(hitInfo.RowHandle) Then
                        Rows.Add(GridViewRegularizar.GetDataRow(GridViewRegularizar.GetSelectedRows()(I)))
                  End If
    
    Next
    
                For I = 0 To Rows.Count - 1
                    Dim Row As DataRow = CType(Rows(I), DataRow)
    
                    Dim vMovId As Integer = Row("MovId") & vbNewLine
                    Dim vFamId As Integer = Row("FMId") & vbNewLine
                    Dim vFamNome As String = Row("FMNome") & vbNewLine
                    Dim vNdoc As Integer = Row("NDOC") & vbNewLine 'NDoc 
                    Dim vNMov As Integer = Row("NMOV") & vbNewLine
                    Dim vMes As Integer = Row("Mes") & vbNewLine
                    Dim vAno As Integer = Row("Ano") & vbNewLine
                    Dim vDiaMulta As Integer = GridViewRegularizar.GetRowCellValue(I, "DIASMULTA")
                    Dim vToTaCRMB As Integer = Row("TOTCRMB") & vbNewLine
                    Dim vToTaCRMS As Integer = Row("TOTCRMS") & vbNewLine
                    Dim vPerMulta As Integer = GridViewRegularizar.GetRowCellValue(I, "PERCMULTA")
                    Dim vDatMov As Date = GridViewRegularizar.GetRowCellValue(I, "DataMov")
                    Dim VMULTAMB As Integer = GridViewRegularizar.GetRowCellValue(I, "VMULTAMB")
                    Dim vValorReal As Integer = Row("VALORIGA") & vbNewLine
                    Dim VMULTAMS As Integer = GridViewRegularizar.GetRowCellValue(I, "VMULTAMS")
                    vDIVIDMB = GridViewRegularizar.GetRowCellValue(I, "FALTAPAGAR", Nothing)
                    vDIVIDMS = vDIVIDMB / vCambio
                    Dim vOperacao As String
    
                    vAnoMov = vAno
    
                   '############################################################ Regulariza Recibo ########################################################################
    
                    Dim Cnn As New OleDbConnection(connOracle)
                    Cnn.Open()
                    Dim FullTrans As OleDb.OleDbTransaction  = Cnn.BeginTransaction(IsolationLevel.ReadCommitted)
    
             ' esta instrução só rola uma vez por ser o recibo      
    
    If Reci = True Then
                        SQLTR = "INSERT INTO TABRECIBO"
                        SQLTR = SQLTR & "("
                        SQLTR = SQLTR & " NRecId,ANO,AlunoId,MovimentoId,ReciData,VTMB,VTMS,MoedaId,ForPag,BORD,BORDATA,BORDVALOR,BANCOID,PCEMIT,USERLOG,CodOpe, DataCria"
                        SQLTR = SQLTR & ")"
                        SQLTR = SQLTR & " VALUES ("
                        SQLTR = SQLTR & "" & vNumerador & "," & Year(vDateTabalho) & "," & CInt(TxtProc.Text) & "," & 40 & ", '" & Trim(devolveAMDHM(vDateTabalho, 1)) & "', "
                        SQLTR = SQLTR & "" & TxtPag_MB.Text & ", " & TxtPag_MS.Text & ","
                        If RBtnMB.Checked = True Then
                            SQLTR = SQLTR & "'" & vMBase & "',"
                        Else
                            SQLTR = SQLTR & "'" & vMSuplementar & "',"
                        End If
                        SQLTR = SQLTR & "" & CmbFor_Pagamento.SelectedValue & "," & TxtBorderou.Text & ",'" & Trim(devolveAMDHM(DateBorde.Value, 1)) & "'," & Txt_Valor_Borde.Text & ","
                        SQLTR = SQLTR & "" & CmbBanco.SelectedValue & ",'" & Pcnome & "','" & User_Log & "','" & vOperador & "','" & Trim(devolveAMDHM(vData, 0))
                        SQLTR = SQLTR & "')"
    
                        Try
                            comando = New OleDbCommand(SQLTR, connOracle, FullTrans)
                            registrosAfectados += comando.ExecuteNonQuery
                        Catch ex As Exception
                            Reci = False
                            MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
                        End Try
    
    End If
                    Reci = False
    
                    '####################################################################################################################################################################
    
                    '######################################################################################################################################################################
    
                        SQLMT = " INSERT INTO MOVTESOR "
                        SQLMT = SQLMT & "("
                        SQLMT = SQLMT & " NDOC,NMOV,MovimentoId, ALUID,MES,ANO,SINALID,DATA,CODMB,CODMS,PERCDESC,DESCDBMB,"
                        SQLMT = SQLMT & " VAILIQDB,VALLIQDB,MOEDAID,ANOLECTIVOID,VDBMB,VCRMB,CAMBIO,VDBMS,VCRMS,MULTA,PERCMULTA,DIASMULTA,VALMULTAMB,OPER,NRecId,DATRECI,"
                        SQLMT = SQLMT & " NOMEPC,LOGUSER,CodOpe, DataCria"
                        SQLMT = SQLMT & ")"
                        SQLMT = SQLMT & "VALUES ("
                        SQLMT = SQLMT & vNdoc & "," & vNMov & "," & 40 & "," & CInt(TxtProc.Text) & "," & vMes & "," & vAno & ",'" & vCed & "',"
                        SQLMT = SQLMT & "'" & Trim(devolveAMDHM(vDatMov, 0)) & "','" & vMBase & "','" & vMSuplementar & "'," & 0 & "," & 0 & ","
                        SQLMT = SQLMT & "" & CInt(vValorReal) & "," & CInt(vToTaDBMB) & ","
                        If RBtnMB.Checked = True Then
                            SQLMT = SQLMT & "'" & vMBase & "',"
                        Else
                            SQLMT = SQLMT & "'" & vMSuplementar & "',"
                        End If
                        If vMBase = "Akz" And vMSuplementar = "USD" Then
                            vOperacao = "/"
                        ElseIf vMBase = "USD" And vMSuplementar = "Akz" Then
                            vOperacao = "*"
                        End If
                        SQLMT = SQLMT & "" & vAnoLectivo & "," & vToTaDBMB & "," & vToTaCRMB & "," & vCambio & "," & vToTaDBMS & "," & vToTaCRMS & "," & vMULTA & ","
                        SQLMT = SQLMT & "" & vPerMulta & "," & vDiaMulta & "," & VMULTAMB & ",'" & vOperacao & "'," & vNumerador & ",'" & Trim(devolveAMDHM(vData, 0)) & "',"
                        SQLMT = SQLMT & "'" & Pcnome & "','" & User_Log & "','" & vOperador & "','" & Trim(devolveAMDHM(vData, 0)) & "'"
                        SQLMT = SQLMT & ")"
    
                        'ACTUALIZAR A TABELA DE NUMERADORES
    
                        SQLMT2 = "UPDATE TABNUM "
                        SQLMT2 = SQLMT2 & " SET "
                        If CmbMS.SelectedValue = vMBase Then
                            SQLMT2 = SQLMT2 & " NRECIBOMB=" & vNumerador
                        Else
                            SQLMT2 = SQLMT2 & " NRECIBOMS=" & vNumerador
                        End If
                        SQLMT2 = SQLMT2 & " WHERE REGID = 1"
    
                        'ACTUALIZAR A TABELA DAS CONTAS CONRRENTES
    
                        SQLCDOC = " UPDATE C_CDOC "
                        SQLCDOC = SQLCDOC & " SET "
                        SQLCDOC = SQLCDOC & " TOTCRMB=" & CInt(vToTaDBMB)
                        SQLCDOC = SQLCDOC & " ,TOTCRMS=" & vToTaDBMS
                        SQLCDOC = SQLCDOC & " ,PERCMULTA=" & vPerMulta
                        SQLCDOC = SQLCDOC & " ,DIASMULTA=" & vDiaMulta
                        SQLCDOC = SQLCDOC & " ,VMULTAMB=" & VMULTAMB
                        SQLCDOC = SQLCDOC & " ,VMULTAMS=" & VMULTAMS
                        SQLCDOC = SQLCDOC & " WHERE NDOC =" & vNdoc
                        SQLCDOC = SQLCDOC & " AND AluId=" & CInt(TxtProc.Text)
                        SQLCDOC = SQLCDOC & " AND MovimentoId=" & vMovId
                        SQLCDOC = SQLCDOC & " AND MES=" & vMes
                        SQLCDOC = SQLCDOC & " AND ANO=" & vAno
    
                        'INSERI REGISTO NA TABELA DO CORPO DO RECIBO
    
                        SQLTMR = "INSERT INTO TABMOVRECIBO"
                        SQLTMR = SQLTMR & "("
                        SQLTMR = SQLTMR & " RECIID,AluId,NDOC,ANO,TABMOVID,MES,NMOV,DATAMOV, VALORINAL,VALORMB, VALORMS,CAMBIO,CODMB,CODMS, OPER,PERCMULTA,VMULTAMB,VMULTAMS,DIASMULTA,"
                        SQLTMR = SQLTMR & " MOEDAID,DIVIDMB,DIVIDMS,PCEMIT, USERLOG,CodOpe, DataCria"
                        SQLTMR = SQLTMR & ")"
                        SQLTMR = SQLTMR & " VALUES ("
                        SQLTMR = SQLTMR & "" & vNumerador & "," & CInt(TxtProc.Text) & "," & vNdoc & "," & vAno & "," & vMovId & ", " & vMes & "," & 0 & ",'" & Trim(devolveAMDHM(vDatMov, 1)) & "',"
                        SQLTMR = SQLTMR & "" & vValorReal & ", " & CInt(vToTaDBMB) & ", " & vToTaDBMS & ", " & vCambio & ",'" & vMBase & "','" & vMSuplementar & "','" & vOperacao & "',"
                        SQLTMR = SQLTMR & "" & vPerMulta & ", " & VMULTAMB & "," & VMULTAMS & ", " & vDiaMulta & ","
                        If RBtnMS.Checked = False Then
                            SQLTMR = SQLTMR & "'" & vMBase & "',"
                        Else
                            SQLTMR = SQLTMR & "'" & vMSuplementar & "',"
                        End If
                        SQLTMR = SQLTMR & "" & vDIVIDMB & ", " & vDIVIDMS & ",'" & Pcnome & "','" & User_Log & "','" & vOperador & "','" & Trim(devolveAMDHM(vData, 0))
                        SQLTMR = SQLTMR & "')"
    
                        Try
                           'todas estas instruçoes podem rolar + de uma vez
                            '##########################################################
                            comando = New OleDbCommand(SQLMT, connOracle, FullTrans)
                            registrosAfectados += comando.ExecuteNonQuery
                            'ACTUALIZAR A TABELA DE NUMERADORES
                            comando = New OleDbCommand(SQLMT2, connOracle, FullTrans)
                            registrosAfectados += comando.ExecuteNonQuery
                            'ACTUALIZAR A TABELA DAS CONTAS CONRRENTES
                            comando = New OleDbCommand(SQLCDOC, connOracle, FullTrans)
                            registrosAfectados += comando.ExecuteNonQuery
                            'INSERI REGISTO NA TABELA DO CORPO DO RECIBO
                            comando = New OleDbCommand(SQLTMR, connOracle, FullTrans)
                            registrosAfectados += comando.ExecuteNonQuery
                            vValor5 = vAno
                       Catch ex As Exception
                            MessageBox.Show("Erro ao efetuar a conexão com a base de dados : " + ex.Message)
                        Finally
                            FullTrans.Rollback()
                            If connOracle.State = ConnectionState.Open Then
                                Module_GESTPED.DesconectaBanco(VTipBDados)
                            End If
                        End Try
                    End If
    Next
      FullTrans.Commit()

     

    • 0 respostas
  6. Re: Função getSingleValue não funciona como esperado

    mikeysantana
    Por mikeysantana,
    32 minutos atrás, HappyHippyHippo disse:
    
    $stmt = $pdo->prepare("SELECT `VerificacaoTipoDocumento` FROM `TiposDocumentos` WHERE `NomeTipoDocumento` = :Nome");
    $stmt->bindParam(':Nome', $TipoDoc);
    $stmt->execute();
    $resultSet = $stmt->fetchAll();
    if (count($resultSet) != 1) {
    die("unexpected number of rows : " . count($resultSet));
    }
    
    $ResultadoTipo = reset($resultSet)['VerificacaoTipoDocumento'];

    deverá ser algo como isto

    Olá, @HappyHippyHippo!

    Obrigado pela sugestão do código.

    Já tenho o código funcional! Muito obrigado! :)

    • 14 respostas
  7. Re: Função getSingleValue não funciona como esperado

    HappyHippyHippo
    Por HappyHippyHippo,
    $stmt = $pdo->prepare("SELECT `VerificacaoTipoDocumento` FROM `TiposDocumentos` WHERE `NomeTipoDocumento` = :Nome");
    $stmt->bindParam(':Nome', $TipoDoc);
    $stmt->execute();
    $resultSet = $stmt->fetchAll();
    if (count($resultSet) != 1) {
    die("unexpected number of rows : " . count($resultSet));
    }
    
    $ResultadoTipo = reset($resultSet)['VerificacaoTipoDocumento'];

    deverá ser algo como isto

    • 14 respostas
  8. Re: Função getSingleValue não funciona como esperado

    mikeysantana
    Por mikeysantana,
    12 horas atrás, HappyHippyHippo disse:

    novamente, continuas com referências vindas do céu ...

    - afinal que variável é $TipoDoc ?

    - que valor tem essa variável ?

    - se queres guardar o valor na variável $ResultadoTipo, porque estás a dar essa variável como elemento de entrada/composição do SQL ?

     

    afinal que tutorial de PHP/PDO andas a seguir ? onde estás a retirar/estudar esta maneira de fazer as coisas ?

    este é o primeiro resultado que obtive a pesquisar php pdo tutorial no google, já será um começo se deres uma vista de olhos (como deve ser) http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

    A variável $TipoDoc recebe o valor de um dos campos do formulário, neste caso, o nome do Tipo de Documento, uma das colunas da tabela TiposDocumentos da BD. Só quero fazer um SELECT para ele identificar a linha desse Tipo de Documento na coluna NomeTipoDocumento e atribuir à variável $ResultadoTipo, o valor do campo da coluna VerificacaoTipoDocumento na mesma linha. Na BD, esta coluna apenas toma valores de Sim ou Não.

    Desta vez, não segui tutorial, simplesmente fui usar o comando SELECT.

    Vou ver o tutorial, obrigado.

    É possível fazer o que descrevi acima?

    • 14 respostas
  9. Re: Função getSingleValue não funciona como esperado

    HappyHippyHippo
    Por HappyHippyHippo,

    novamente, continuas com referências vindas do céu ...

    - afinal que variável é $TipoDoc ?

    - que valor tem essa variável ?

    - se queres guardar o valor na variável $ResultadoTipo, porque estás a dar essa variável como elemento de entrada/composição do SQL ?

     

    afinal que tutorial de PHP/PDO andas a seguir ? onde estás a retirar/estudar esta maneira de fazer as coisas ?

    este é o primeiro resultado que obtive a pesquisar php pdo tutorial no google, já será um começo se deres uma vista de olhos (como deve ser) http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

    • 14 respostas
  10. Re: Substituir Letra Excel

    a3deluxe
    Por a3deluxe,

    Esta a dar erro.

    A ideia era:

    tenha por exmplo a coluna C1 ... C15 com várias combinações como por exemplo esta "YAJH" e queria que quando escrevesse alguma destas letras na coluna C1,C2....C15

    ele substitui-se estas letras por outras na coluna A1,A2,...A15

    por exemplo o Y por B 

    A por V 

    J por E

    H por M

    • 3 respostas
  11. Re: Substituir Letra Excel

    a3deluxe
    Por a3deluxe,

    Muito obrigado CFreitas,

    Vou testar a ver se consigo.

    depois posto aqui mais algumas dúvidas que surjam.

     

    • 3 respostas
  12. Re: Função getSingleValue não funciona como esperado

    mikeysantana
    Por mikeysantana,
    2 horas atrás, HappyHippyHippo disse:

    ':TipoDoc' ou ':VerificacaoTipoDocumento' ?

    olha bem para o código SQL e o nome do parâmetro que pretendes atribuir

    Olá, @HappyHippyHippo

    Eu desconfiei que fosse dessa parte do código, porém não sei como proceder.

    Mas a minha intenção é que ele identifique a linha onde a coluna "NomeTipoDocumento" seja igual à variável "$TipoDoc", depois atribuir o valor da coluna "VerificacaoTipoDocumento" dessa mesma linha à variável "$ResultadoTipo". Isso é possível?

    • 14 respostas
  13. Re: Como dominar o uso de bibliotecas em C?

    HappyHippyHippo
    Por HappyHippyHippo,

    certo, mas podes ser mais concreto/específico no que pretendes ? um exemplo, talvez ?

    • 1 resposta
  14. Re: Função getSingleValue não funciona como esperado

    HappyHippyHippo
    Por HappyHippyHippo,

    ':TipoDoc' ou ':VerificacaoTipoDocumento' ?

    olha bem para o código SQL e o nome do parâmetro que pretendes atribuir

    • 14 respostas
  15. Re: AT - questões legais

    CFreitas
    Por CFreitas,
    On 9/6/2017 at 10:55 AM, bugFree said:

    Obrigado.

    Julgo que tenho que obrigar o cliente a fazer Notas de Crédito dos valores de garantia, assim já não deverá ter problemas.

    Já agora: Em que situações é que permitem colocar valores/quantidades a negativo nas FT ?

    Vejo muito poucas, senão nenhumas, as situações possíveis.

    Nesta situação não pode haver nota de crédito.

    O valor retido fica em dívida. O cliente pagará esse valor no final do período de garantia. Ao haver NC a dívida é saldada, o que não é o que se pretende. A retenção a título de garantia é uma mera operação financeira.

    O procedimento, como já foi dito, é o descrito no ponto 2.2.7.

    Relativamente às linhas negativas (que não podem ser usadas nesta situação), a regra está descrita no ponto 2.2.6. do mesmo despacho.

    • 4366 respostas
  16. Re: Forçar require em display:none

    carcleo
    Por carcleo,

    Gostaria de usar apenas css. Mas a dúvida é outra, é html mesmo. Como coloca require em um campo que está com display:none.

    Não é questão de validação somente. Entendeu?

    • 3 respostas
  17. Re: Substituir Letra Excel

    CFreitas
    Por CFreitas,

    É com a função SUBST (em inglês SUBSTITUTE)

    =SUBST(A1;"H";"C")

     

    • 3 respostas
  18. Re: Função getSingleValue não funciona como esperado

    mikeysantana
    Por mikeysantana,
    Em 17/09/2017 às 10:04, yoda disse:
    
    if (getSingleValue($tableName, $prop, $value, $columnName) == "Sim")
    {
    	$EstadoDoc = "Por Verificar";
    }
    else
    {
    	$EstadoDoc = "Verificado";
    }

    Só tinhas a função declarada, não a estavas a chamar. Talvez não sintas motivação suficiente para aprender PHP, mas se investires umas horas da tua vida vais ver que percebes depressa, é uma linguagem simples, mais do que muitas que por ai andam.

     

    Olá, yoda!

    Obrigado pela ajuda!

    Até que é simples, o único problema que tenho tido é quando tento o PDO, é raro conseguir encontrar casos específicos em PDO (assim como aqueles que tenho vindo a expor), já em mysqli é muito mais fácil.

    O código que sugeriste para o script, não sei porquê. Decidi fazer uma abordagem mais simples, que estava mais familiarizado.

    Para simplificar as coisas:

    "$TipoDoc" recebe do formulário o tipo de documento que o utilizador seleciona

    Depois, o SELECT vai, supostamente pesquisar na coluna "NomeTipoDocumento" a linha que seja igual a "$TipoDoc". De seguida, o "$stmt" iria atribuir à variável "$ResultadoTipo", os valores "Sim" ou "Não", consoante o que estivesse presente na coluna "VerificacaoTipoDocumento" da mesma linha. 

    $sql= "SELECT NomeTipoDocumento, VerificacaoTipoDocumento FROM TiposDocumentos WHERE NomeTipoDocumento = :TipoDoc"; 
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':VerificacaoTipoDocumento', $ResultadoTipo, PDO::PARAM_INT); 
    $stmt->execute();
    	if ($ResultadoTipo == "Sim")
    {
    	$EstadoDoc = "Por Verificar";
    }
    else
    {
    	$EstadoDoc = "Verificado";
    }

    Infelizmente, na execução, ele apresenta esta mensagem:

    SQLSTATE[HY093]: Invalid parameter number: parameter was not defined

    Refere-se ao "$stmt" do "VerificacaoTipoDocumento" mas, pensei que o código funcionaria assim...

    Falta alguma coisa?

    Obrigado.

    • 14 respostas
  19. Re: Bloqueio no fim da leitura da Base de Dados

    nelsonr
    Por nelsonr,

    Bom dia Israel,

    a melhor forma de verificares onde está a parar é executares a aplicação em modo debug.

    Colocas um breakpoint algures ai dentro desse metodo.
    Se a aplicação chegar a esse breakpoint, continuas a execução linha a linha e verificar se chega ao fim do método.

    Se chegar ao fim, o problema pode não ser neste metodo.
     

    • 2 respostas
  20. Re: Substituir Letra Excel

    a3deluxe
    Por a3deluxe,

    Bom dia,

    Alguem sabe a formula para o seguinte:

    Se na celula "A1" existe a letra H então 

    substituir pela letra C ?

    sabem se é possível no ecxel?

    Obrigado 

    • 3 respostas
  1. Ver Mais Actividade
×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade