Стандарт SQL-92 определяет INFORMATION_SCHEMA который приспосабливание rdbms's как поддержка SQL Server MS. Следующие работы для SQL Server 2000 MS/2005/2008 и MySql 5 и выше
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'myTable'
Конкретный SQL-сервер мс:
exec sp_help 'myTable'
Это решение возвращает несколько наборов результатов, в которых информация, которой Вы требуете, где, поскольку первый дает Вам точно, что Вы хотите.
Также только для полноты можно запросить sys таблицы непосредственно. Это не рекомендуется, поскольку схема может измениться между версиями SQL Server, и INFORMATION_SCHEMA является слоем абстракции выше этих таблиц. Но здесь это так или иначе для SQL Server 2000
select [name] from dbo.syscolumns where id = object_id(N'[dbo].[myTable]')
Да, вы должны открыть файл в «двоичном» режиме, чтобы остановить перевод новой строки.
Как вы это делаете, зависит от того, как вы открываете файл.
Использование fopen
:
FILE* outfile = fopen( "filename", "wb" );
Использование ofstream
:
std::ofstream outfile( "filename", std::ios_base::binary | std::ios_base::out );
Хорошо, это, вероятно, не то, что вы хотите услышать, но вот мои 0,02 доллара на основе моего опыта работы с этим:
Если вам нужно передавать данные между разными платформами, в долгом run вам, вероятно, лучше использовать формат, который не заботится о том, как выглядят разрывы строк. Если это текстовые файлы, пользователи иногда будут с ними связываться. Если из-за беспорядка в конце строки происходит сбой вашего приложения, это будет приложение с интенсивной поддержкой.
Был там, сделал, перешел на XML. Сделали ребят из службы поддержки намного счастливее.