Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

allantoledo

Sincronizar banco de dados SQL Server e MySQL

Recommended Posts

Pessoal, boa tarde.

Sou novo nesse mundo, tenho conhecimento de HTML, CSS e Javascript, preciso muito de uma orientação de vocês.

Projeto:

Na empresa que trabalho, o fornecedor do sistema de vendas criou um "view do banco de dados" para eu ter acesso a tabela de pontos dos clientes da loja (cada compra vale um ponto). Vamos criar um programa de pontos para nossos clientes, ele vai trocar os pontos por produtos e descontos na loja.

O problema:

O banco de dados do meu parceiro é SQL SERVER, tentei fazer a conexão via PHP sem sucesso. Em conversa com eles, fui informado que o ideal seria criar uma aplicação em C# que conectasse com o banco de dados e sincronizasse com um novo BD MySQL, assim eu poderia fazer a consulta ao novo bd MySQL. Meu objetivo primário é criar uma página onde meus clientes pudessem ver quantos pontos eles tem. Não sei por onde começar.

Alguém pode me ajudar?

Informações que recebi:

Banco LexManager_GadelCampinas
usuário gadelview
senha SENHA
Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara para sua conexão no banco de dados é simples segue abaixo em php.

1 - arquivo conexão: (config.php)

<?php
function conectar( )
{
try{
$pdo = new PDO("mysql:host="end_servidor;dbname= nome_do_db,"nome_usuario","senha", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

}catch(PDOException $e){
echo $e -> getMessage( );
}
return $pdo;
}
?>

 

 
2 - index.php onde vai rodar sua regra de negocio e/ou ate exibir os dados. (aplicação) (index.php)
 
<?php
require_once('config.php'); //inserimos os dados da conexão
$pdo=conectar( ); //conecta através das informações acima

// já estando conecato só fazer a consulta dos dados do seu parceiro no bando de dados dele
//apenas ficticio abaixo, usei PDO mais pode usar do jeito que quiser, bindParam é entrada de dados via formulário
//isso é prepara uma tela de login, o cliente loga e estando certo ja faz a consulta pegando a autenticação do
//usuario e ja fazendo a consulta em cima do ID dele, trazendo o que ele tem de ponto.
//para isso depois de logar veja qual o ID dele e faz uma consulta igual abaixo mais pegando o ID dele.
//Preparando a consulta
$sql =$pdo->prepare("SELECT * FROM pontos WHERE login= ? AND senha = ?") ;
$sql->bindParam('1',$user, PDO::PARAM_STR); //lê usuario a consultar os pontos
$sql->bindParam('2',$senha, PDO::PARAM_STR); //lê a senha desse usuário

//Executando consulta
$sql->execute( );

//Obtém linha consultada.
$obj = $sql->fetchObject();

// Se o login existe: Mostra a tela, com os dados dos pontos do cliente:
// **** o login deve ser único

if ($obj) {
while($obj = $consulta->fetch()) {
echo 'id: '. $row['id'] . ' - ';
echo 'login: '. $row['login'] . ' - ';
echo 'pontos: '. $row['pontos'] . ' - ';
echo '<br>';
}

} else {
echo '
<script>
alert("Login ou senha inválido!");
window.history.go(-1);
</script>
';
}

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Allan,

 

Caso queira conectar no banco de dados Sql Server e extrair os dados você pode utilizar o código abaixo.

 

        public decimal getByCodAcordoBanco(int Id)
        {
            decimal retorno = 0

            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand("Select pontos from [tabela] where id = @id", conn)) //Query de consulta
                {
                    cmd.CommandType = System.Data.CommandType.TableDirect;
                    SqlParameter param = new SqlParameter("@id", System.Data.SqlDbType.Int);
                    param.Value = Id; //informar o id do registro que deseja consultar

                    cmd.Parameters.Add(param);

                    using (SqlDataReader dr = cmd.ExecuteReader())
                        if (dr.Read())
                          retorno = Convert.ToDecimal(dr[0])
                }
            }
            return retorno;
        }

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Tudo bem pessoal?
       
      No código abaixo, estou fazendo uma consulta nas tabelas, banners e banners_referencia
      Meu objetivo é trazer resultados com valores iguais ao nome da cidade declarada na $cidade ou resultados com a referencia Total.
      O problema é que está trazendo todos os resultados. Tenho 10 linhas, 1 com o nome da cidade e duas com o valor Total, então o resultado teria que ser de apenas 3 linhas, mas mostra tudo.
       
      $banner = "SELECT A.*, B.* FROM banners A, banners_referencia B WHERE B.cod_referencia = A.cod_referencia AND A.cidade = '$cidade' OR B.referencia = 'Total' ORDER BY RAND()";
      $banner = mysqli_query($conexao, $banner) or die ("Banner não encontrado");
      while($busca= mysqli_fetch_array($banner)){
          print $busca['cidade'].'<br>';
      };
       
      Alguém consegue me ajudar?
    • Por Rafael_Ferreira
      Não consigo carregar a imagem do captcha do meu formulário. Foi testado com o xampp e easyphp. Também não carregou a imagem de outros captcha. 
       
       
    • Por luiz monteiro
      Olá, tudo bem?
       
      Estou melhorando meu conhecimento em php e mysql e, me deparei com o seguinte. A tabela da base de dados tem um campo do tipo varchar(8) o qual armazena números. Eu não posso alterar o tipo desse campo. O que preciso é fazer um select para retornar o números que contenham zeros a direita ou a esquerda.
      O que tentei até agora
       
      Ex1
      $busca = $conexao->prepare("select campo form tabela where (campo = :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form']);
       
      Se a direita da string $_REQUEST['campo_form'] termina ou inicia com zero ou zeros, a busca retorna vazio.
      Inseri dados numéricos, da seguinte maneira para testar: 01234567;  12345670: 12345678: 12340000... entre outros nessa coluna. Todos os valores que não terminam ou não iniciam com zero ou zeros, o select funciona.
       
       
      Ex2
      $busca = $conexao->prepare("select campo form tabela where (campo = 0340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex3
      $busca = $conexao->prepare("select campo form tabela where (campo = '02340001' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex4
      $busca = $conexao->prepare("select campo form tabela where (campo like 2340000) ");
      Esse número está cadastrado, mas não retorna.
       
      Ex5
      $busca = $conexao->prepare("select campo form tabela where (campo like '12340000') ");
      Esse número está cadastrado, mas não retorna.
       
      Ex6
      $busca = $conexao->prepare("select campo form tabela where (campo like '"12340000"' ) ");
      Esse número está cadastrado, mas não retorna.
       
       
      Ex7
      $busca = $conexao->prepare("select campo form tabela where (campo like :campo) ");
      $busca->bindParam('campo', $_REQUEST['campo_form'])
      Não retorna dados.
       
      O  $_REQUEST['campo_form'] é envio via AJAX de um formulário. 
      Usei o gettype para verificar o post, e ele retorna string.
      Fiz uma busca com número 12345678 para verificar o que o select retorna, e também retrona como string.
       
      Esse tipo de varchar foi usado porque os números que serão gravados nesse campo,  terão zeros a direita ou na esquerda. Os tipos number do mysql não gravam zeros, então estou usando esse. O problema é a busca.
      Agradeço desde já.
       
       
    • Por daemon
      Tenho 3 selects assim com varias categorias...
       
              $sql = "SELECT * FROM topicos          WHERE idcategoria = $idcategoria          AND pubdate BETWEEN NOW() - INTERVAL $intervalo1_horas_ou_minutos $tipo_intervalo1_horas_mnutos AND          NOW() - $intervalo2_horas_ou_minutos ORDER BY pubdate DESC LIMIT 1"; Preciso que na minha pagina principal (index) mostre este registro por 10minutos.. passando de 10 minutos mostra o resultado do proximo select (categoria)..
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.