Não gosto de falar muito, mas vamos lá.
1. Windows não tem nada haver com servidor e criando um servidor com windows 2003 você TOTALMENTE submisso a inject(porque o sql que você irá rodar não vai suportar as proteções de um servidor verdadeiro, isso se você souber o que é um servidor de verdade).
2. Solicitar formatação de máquina para resolver problema é de longe a saída mais gritante e tosca que um ADMINISTRADOR pode buscar(vinculado ao item 1), pois Windows(estando atualizado e OK) não irá infligir nenhum problema ao seu servidor. Ao contrário, quanto mais atualizado, melhor.(Muaway e outros grandes servidores rodam server e sql 2012)
3. Falando especificamente do erro:
3.1 Qual o executável que não está ligando?
Resposta: Pela foto percebe-se que é o dataserver(que coincidentemente não está achando a conexão exata com o sql)
3.2 O que faz a conexão do dataserver no sql?
Resposta: odbc
3.3 Qual a mensagem de descrição do erro?
Resposta: "Could not connect to database"
Tradução direta: Não pode se conectar com a database
3.4 Poderíamos fazer uma engenharia reversa dentro da dataserver para identificar o erro?
Resposta: sim, veja este trecho do código que resulta na mensagem de erro:
if(gQueryManager.Connect(DataServerODBC,DataServerUSER,DataServerPASS) == 0)
{
LogAdd(LOG_RED,"
Could not connect to database");
}
3.5 Pode dá uma explicação melhor?
Resposta: sim..
(IF = SE) ( ISSO TUDO ) *(ESTIVER FALSO)
if(gQueryManager.Connect(DataServerODBC,DataServerUSER,DataServerPASS) == 0)
{
(CODIGOS OU COMANDOS DENTRO DA CHAVE {} É O MESMO QUE DIZER: ENTÃO FAÇA)
LogAdd(LOG_RED,"Could not connect to database");
}
(ESTIVER FALSO) EXPLICAÇÃO:
Se o
"== 0)" estivesse assim:
,DataServerPASS == 0), significaria que tudo aquilo dentro das "()"
RECEBERIA 0,
como está fora da sintaxe de verificação(), ele quer dizer: "SE FOR FALSO, FAÇA"(0 em c++ = falso)
Independente de onde seja, se eu disser algo, acredite. Bjs!