Как отправить запрос на SQL Server через tcp ip (с помощью общего инструмента, такого как Packet Sender) на тот же P C? - PullRequest
0 голосов
/ 22 января 2020

Связь в порядке. Если я закрываю SQL Сервер, я получаю эту ошибку:

Не могу подключиться.

Если я запускаю его, у меня нет сообщения об ошибке, но все равно нет любое влияние на базу данных. Я пытаюсь вставить новую запись.

Server name: KI_OROS\SQLEXPRESS  
Database name: MyFirstDatabase 
Datatable name: MyFirstTable

Я пытаюсь отправить этот пакет: INSERT INTO MyFirstTable (ID) VALUES (99)

Я новичок с SQL Сервером, что я делаю не так?

1 Ответ

2 голосов
/ 22 января 2020

Вы не можете просто подключиться к SQL Серверу по TCP и отправить запросы в виде текста.

Клиенты общаются с SQL Сервером по TCP с использованием протокола Табличный поток данных, Он начинается с рукопожатия, чтобы договориться о том, какие возможности обе поддерживают, затем клиент аутентифицируется на сервере («вход в систему»), и только после этого вы можете отправить строку SQL в пакете SQL.

Как это реализовать, см. [MS-TDS]: протокол потока табличных данных . Но вы не хотите реализовывать это сами.

Моя цель - написать программу PL C, которая может напрямую взаимодействовать с sql сервером

Либо используйте библиотеку, которая позволяет вам выполнять SQL операторы из кода, либо позволить вашему PL C выполнить HTTP-запрос (который тривиален с использованием простого текста) службе, которая принимает это сообщение и выполняет необходимые SQL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...