1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Mysql -> Sql Server

Discussão em 'Web Development' iniciada por toblesu, 26 de Fevereiro de 2008. (Respostas: 18; Visualizações: 1595)

  1. toblesu

    toblesu Power Member

    Oias,

    estou a trabalhar num projecto, que tem vindo a ser desenvolvido em MySQL e PHP, utilizando para o efeito o xammp...
    No entanto o cliente pretende que qye tudo seja passado para SQL SERVER, já que é a SGBD que usa... acontece que de SQL SERVER, pouco ou nada percebo, já encontrei uns tutoriais sobre linhas de comando de SQL SERVER mas perdi essa informação e não estou a conseguir voltar a encontrar.. se me pudessem indicar um link que me pudesse ajudar, agradecia!

    Outra questão, o xammp só permite o MySQL, e como vou ter que testar se as coisas estão realmente a funcionar, depois de "converter" o meu código em SQL SERVER.. será que me poderiam também indicar um software onde pudesse correr o SQL SERVER e PHP....

    obrigado!
     
  2. Santo38

    Santo38 Power Member

    SQL Server necessita de licença.. e para o correr com PHP nada melhor que.. Windows

    Saudações
     
  3. Marsupillami

    Marsupillami Power Member

    Se estás a correr sobre Windows, só tens de instalar o SQL Server e activar a extensão do PHP que permite a conexão ao MSSQL (deverá só ser necessário tirar o ";" ).

    XAMPP é apenas um conjunto de programas necessários / úteis para desenvolvimento web, não é uma plataforma sobre a qual corres algo. Poderás recorrer ao SQL Server Express para conseguires trabalhar sobre Microsoft SQL "free of charge".
     
  4. toblesu

    toblesu Power Member

    Entendti.... De facto uso o xammp para poder testar o que tinha feito com o php e mysql no dreamweaver (o xammp é então o utilitário como falaste!! posso não me ter feito interpretar bem!)... e por existir o xammp, é que pensei que poderia existir um utilitário com finalidades semelhantes mas que permitisse usar o SQL SERVER com o PHP, não tinha noção que poderia correr sob o windows....
    obrigado pelo esclarecimento...

    Continuanto, continuo com dificuldade em transformar as linhas de código de mysql para sql server, sei que em alguns casos basta substituir o prefixo "mysql" por "mssql".... por exemplo "mysql_query" -> "mssql_querry", mas nem todas as linhas poderão sofrer este tratamento, porque de facto há diferenças no código, será que me poderiam dar umas luzes quanto a esta situação?

    obrigado.
     
  5. SkylineGTR

    SkylineGTR Power Member

    Visto que o express só cria mesmo as instâncias da BD e não instala tools, recomendo (se necessário) a aplicação:

    EMS SQL Manager 2008 Lite for SQL Server

    esta versão lite é gratuita ;)
     
  6. toblesu

    toblesu Power Member

    Já agora, aproveito para pedir ajuda num outro tópico, relacionado com este tema..

    preciso de estabelecer uma ligação ao MSSQL através de PHP, já pesquisei em vários sitios, já tentei várias situações e não consigo... utilizei inclusive por base o ficheiro de ligação MYSQL e adaptei para MSSQl, mas não funcionou.....

    o codigo que utilizei foi:


    <?php

    //ligação à base de dados
    $hostname="JJ99\SQLEXPRESS";
    $mssql_login="JJ99\Jorge Leal";
    $mssql_password="";

    $link= mssql_connect($hostname, $mssql_login , $mssql_password);
    if (!$link)
    { die('Não foi possível estabelecer ligação à base de dados: '); }
    $db_selected =mssql_select_db("mabiliz" , $link);
    if (!$db_selected) { die ('Can\'t use foo : '); }
    ?>


    como disse, este foi uma adaptação de um ficheiro de ligação ao MYSQL.....em que a unicadiferente foi trocar "mysql" por "mssql"...
    não faço a minima ideia se isto está correcto, até porque quando corro no browser ele não dá sinal de nenhum.. o que deduzo que não está, obviamente correcto!!

    Se pudessem dar uma ajuda! agradecia!

    obrigado!
     
  7. toblesu

    toblesu Power Member

    fiz alterações ao ficheiro de ligação à base de dados...

    $link= mssql_connect("JJ99\SQLEXPRESS", "teste2", "teste2");
    if (!$link)
    { die('Não foi possível estabelecer ligação ao servidor SQL SERVER '); }
    else
    {
    $bd=mssql_select_db("mabiliz",$link);
    if (!$bd)
    { die('Não foi possível estabelecer ligação à base de dados: '); }
    else
    {
    $sql=mssql_query("select * from produtos");
    while($res=mssql_fetch_row($sql))
    {
    echo $res[0];
    echo $res[1];
    }
    mssql_free_result($res);
    mssql_close($link);
    }
    }

    em que JJ99\SQLEXPRESS é o nome do servidor! mas dá o seguinte erro:


    Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: JJ99\SQLEXPRESS in C:\xampp\htdocs\mabiliz\Ligacao\liga_bd_mssql.php on line 27
    Não foi possÃ*vel estabelecer ligação ao servidor SQL SERVER

    algumas ajudas eram bem vindas!

    obrigado.

    p.s a linha do php-ini relativamente ao mssql foi descomentada!
     
  8. Yokozuna

    Yokozuna Power Member

  9. toblesu

    toblesu Power Member

    esse foi um dos sites que pesquisei.. e tentei aplicar mas igualmente sem sucesso!

    estou a trabalhar em sql sever 2005, utilizei as dicas do link http://www.connectionstrings.com/?carrier=sqlserver2005, mas a coisa nao funcionou!!!

    disseram-me que o problema poderia estar no porto!

    não sei que faça!

    em todo o caso, obrigado!
     
  10. SkylineGTR

    SkylineGTR Power Member

    Essa conecção à base de dados é local? Ou seja, a página e a BD estão a correr na mesma máquina?

    Essas credenciais de autenticação estão correctas? (teste2/teste2)

    O nome do servidor/intância é correcto? E se sim, a instância está a correr?

    Já agora: http://www.php.net/manual/en/ref.mssql.php
     
  11. toblesu

    toblesu Power Member

    sim... a ligação é local, a página e a BD estão a correr na msm máquina... e as instâncias teste2/teste2 tb estão correctas, dados referentes ao utilizador para aceder à BD... permissões!

    já me indicaram uma alternativa, que em vez do nome do servidor, colocar o IP da máquina, mas msm assim continua o msm erro!!
     
  12. CrazyBomber

    CrazyBomber Power Member

    E que tal 'localhost'? Não serve?
     
  13. toblesu

    toblesu Power Member

    não dá com 'localhost'.....
     
  14. p3dro

    p3dro Power Member

    Se usares uma página aspx consegues fazer bem a ligação?

    Tenta também verificar se tens as remote connections activas, tens aqui 2 links que explicam como fazê-lo: link1 e link2
     
  15. toblesu

    toblesu Power Member

    consegui finalmente a ligação ao SQLserver, fiz download e substitui o ficheiro ntwdblib.dll em todas as pastas do xampp.

    Agora tou com problemas em erros nas query´s que ja estavam feitas em MySQL e agora mudando os comandos que estavam em mysql para sqlserver(mysql_query->mssql_query) dá estes erros:
    Warning: mssql_query() [function.mssql-query]: message: Cannot insert explicit value for identity column in table 'temp' when IDENTITY_INSERT is set to OFF. (severity 16) in C:\xampp\htdocs\mabiliz\Cliente\trata_forms\add_linha.php on line 59
    na linhas até à 59 tenho:

    $add_enc="INSERT INTO temp
    (
    cod_t, ref, pvp, qt, descricao, stock, pvp_u, descritivo, tipo, tecido,ped_id, obs2, obs3
    )
    VALUES
    (
    '','$ref','$total_linha','$qt','$valor[1]','$valor[2]','$valor[3]','$cor','$acab','$tec','$id','$obs2','$obs3'
    )";

    $sql=mssql_query($add_enc);

    se poderem dar uma ajuda..

    obrigado a todos
     
    Última edição: 28 de Fevereiro de 2008
  16. SkylineGTR

    SkylineGTR Power Member

    Umas dessas colunas tem IDENTITY, ou seja, para cada insert vai automaticamente atribuir um valor inteiro sequencial (normalmente +1 que o valor anterior).
    Ora, se essa coluna tem identity, tens de a remover do insert, pois o seu valor é "preenchido" automaticamente.
     
  17. p3dro

    p3dro Power Member

    O campo cod_t é a tua chave primária? Se sim, acho que o problema está aqui, não podes estar a atribuir-lhe um valor vazio, nas propriedades da tua chave primária (caso uses por ex. o SqlServer Management Studio Express) vê se tens "Identity Specification"="Yes" e o "Identity Increment"="1" (por exemplo), vai permitir que cada vez que adiciones um registo lhe seja atribuido automaticamente uma chave primária; assim sendo ao fazeres o insert escusas de especificar o nome da chave primária.

    just my 2 cents
     
  18. p3dro

    p3dro Power Member

    O SkylineGTR foi mais rápido :x2:
     
  19. toblesu

    toblesu Power Member

    obrigado pla dica... já funciona.. tinha msm que tirar essa coluna do insert... como foi transformação do mysql para o mssql pensei k nao desse molho... porque no mysql assim é k funciona!

    Obrigado!
     

Partilhar esta Página