Вы не можете просто подключиться к SQL Серверу по TCP и отправить запросы в виде текста.
Клиенты общаются с SQL Сервером по TCP с использованием протокола Табличный поток данных, Он начинается с рукопожатия, чтобы договориться о том, какие возможности обе поддерживают, затем клиент аутентифицируется на сервере («вход в систему»), и только после этого вы можете отправить строку SQL в пакете SQL.
Как это реализовать, см. [MS-TDS]: протокол потока табличных данных . Но вы не хотите реализовывать это сами.
Моя цель - написать программу PL C, которая может напрямую взаимодействовать с sql сервером
Либо используйте библиотеку, которая позволяет вам выполнять SQL операторы из кода, либо позволить вашему PL C выполнить HTTP-запрос (который тривиален с использованием простого текста) службе, которая принимает это сообщение и выполняет необходимые SQL .