LINUX.ORG.RU

Аналог SDFBrovser под линух


0

1

Собственно, появилась потребность просмотреть инфу в паре-тройке SDF файлов от оффтопиковой БД Microsoft SqlServer Compact edition.
Под виндой это можно сделать через visual studio, точнее через через сам SQL-сервер, в его поставке, или же «левой» прогой SDFBrowser, возможно есть ещё к-либо проги.

Конечно можно запустить этот SDFBrowser под вайном, но хотелось бы что-нить нативное.
Понимаю, что формат файла закрыт, но всё-же, может есть что-то?

★★★★★

Ответ на: комментарий от drfaust

По ссылке есть и исходники. На C#. Может с mono заработает. Внутрь на предмет разбора формата не глядел, так что сколько там зависит от MS-овских dll-ек не знаю.

Выложи какой-нибудь SDF поглядеть.

frob ★★★★★
()
Ответ на: комментарий от frob

Ну да, он обращается к БД через сервер:

private void FillTreeDb(string fileName)
        {
            bool schema = false;
            bool data = false;
            bool ok = false;
            string cmdError = null;
            treeDb.Nodes.Clear();
            treeDb.BeginUpdate();
            StreamReader reader = new StreamReader(fileName);
            ddl = new List<string>();
            // Regular expression to search texts finished with semicolons that is not between single quotes
            for (Match m = Regex.Match(reader.ReadToEnd(), @"(?:[^;']|'[^']*')+;\s*", RegexOptions.Compiled); m.Success; m = m.NextMatch()) ddl.Add(m.Value.TrimEnd('\r', '\n'));

            RegexOptions options = RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.IgnoreCase;
            Regex regexCreateTable = new Regex(@"(?<=^CREATE\s+TABLE\s+\[)[^\]]*(?=\]\s+\([^\)]*\))", options);
            Regex regexInsert = new Regex(@"(?<=^INSERT\s+INTO\s+\[)[^\]]*(?=\]\s+\([^\)]*\)\s+VALUES\s+\([^\)]*\))", options);
            Regex regexAlterTable = new Regex(@"^ALTER\s+TABLE\s+\[", options);
            Regex regexCreateIndex = new Regex(@"^CREATE\s+.*INDEX\s+", options);
            Regex regexSetIdentity = new Regex(@"^SET\s+IDENTITY_INSERT\s+\[", options);

drfaust ★★★★★
() автор топика
Ответ на: комментарий от drfaust

Спасибо, погляжу чего там у него кроме неонки.

frob ★★★★★
()
Ответ на: комментарий от drfaust

Кстати, а какое приложение в FOSS поддерживает похожую функциональность? Иначе говоря, если разобрать формат, то в чём его имело бы смысл открывать?

frob ★★★★★
()
Ответ на: комментарий от frob

Ну, например, в том же мускуле или мариа-дб (конвертер в их ДБ).

По структуре в одном ентом файлике с десяток таблиц.
Есть ещё одна засада - файл может быть «запаролен» - чаво енто такое в мелкосовтовом sql-е я не знаю, но, возможно, это и шифрование самого файла.

drfaust ★★★★★
() автор топика
Ответ на: комментарий от drfaust

Разбираться с запароливанием раньше чем с форматом смысла нет.

Посмотрим интересно ли кому это открывать...

frob ★★★★★
()
Ответ на: комментарий от frob

У мну файлы без паролей. Пока обхожусь виндовым просмотрщиком.

drfaust ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.