
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.138] |
![]() |
|
![]() |
|
|
А не подскажет-ли многоуважаемый all, где почитать про расширения SQL-языка используемого компонентами ADO по сравнению со стандартным SQL.
Раньше использовал в основном SQL-сервер Interbase, а тут в одном из ответов встретил 'Select top 1 * From MyTable' - заинтересовало. |
Сообщ.
#2
,
|
|
|
На это точного ответа нет, поскольку сам АДО просто посредник, также как и БДЕ, то есть синтаксис будет зависить от провайдера.
По JET смотри справку из офиса Jetsql40.chm, по другим соотвественно в других источниках. JET SQL поддерживает предикат TOP |
Сообщ.
#3
,
|
|||
|
За Jetsql40.chm спасибо. А на "другие источники" по "Microsoft OLE DB Provider for SQL Server" (SQLOLEDB.1) и "Microsoft OLE DB Provider for ODBC Drivers" (MSDASQL.1) наводочку не дадите? |
Сообщ.
#4
,
|
|
|
ADO не имеет собственного синтаксиса, для MS Access смотри файл
C:\Program Files\Common Files\Microsoft Shared\Office10\1033\JETSQL40.CHM Для других баз данных - хэлп по их синтаксису. |
Сообщ.
#5
,
|
|||
|
Насколько я понимаю, в данном случае речь идет об MS SQL Server Эта документация тоже доступна, только брать с сайта Миксофта, порядка 40 мб, но очень хорошо сделано. |
Сообщ.
#6
,
|
|
|
Если MS SQL Server 2000 то справку смотри где-то здесь:
c:\Program Files\Microsoft SQL Server\80\Tools\Books\tsqlref.chm |
Сообщ.
#7
,
|
|
|
Всем большое спасибо.
|
Сообщ.
#8
,
|
|
|
А по foxpro
|
Сообщ.
#9
,
|
|||
|
Ищи в документации по foxpro |
Сообщ.
#10
,
|
|||
|
А какой доступ до ФоксПро, все определяется этим, знаешь через что, то и смотришь. |
Сообщ.
#11
,
|
|||
|
Дык он же сказал - через ADO.... |
Сообщ.
#12
,
|
|
|
АДО это не достаточно, это определяется провайдером или драйвером. Конечно возможно встроеный интерпритор в АДО преобразует реляционные предложения в навигационные методы, но возможно это будет делать другой провайдер. АДО только посредник типа БДЕ
|
Сообщ.
#13
,
|
|
|
Пардон. Уточню за Alex-co (да простит он меня).
Ему нужно в одном SQL-запросе построить объединение (JOIN) в которое включаются данные из двух таблиц. Одна таблица DBASE, другая VisualFoxPro. Для доступа к данным он использует ADO. Проблемка в том, что DBASE-таблица читается поставщиком данных "Microsoft OLE DB Provider for ODBC Drivers", а VFoxPro - "Microsoft OLE DB Provider for Visual FoxPro". К сожалению, воспользоваться одним поставщиком нет возможности - ни один из известных поставщиков не понимает оба формата ![]() Так вот, он не знает как в одном SQL запросе сослаться на два разных TADOConnection (или поставщика). В BDE подобное без проблем, но BDE вообще не умеет работать с VisualFoxPro-файлами |
![]() |
Сообщ.
#14
,
|
||
|
Совместное использование стопорится если используются индексы и мемо поля без оных все окей. Для Excel-я без разницы где создан файл с расширением .dbf кушает как милый только проблемы с добавлением ,удалением и поддержкой индексов (.mdx || .cdx) Написал и понял что только показывает правельно а все остальное юююю. А BDE таблицы VFoxPro покрайней мере v5 открывает без проблем. |
Сообщ.
#15
,
|
|
|
Ну если-бы все так просто, то я-бы и не вопрошал.
Уж не знаю, какой версией VFoxPro были созданы имеющиеся файлы, но только ни BDE, ни Excel из MS Office XP, их не берет. При этом нет там ни Memo-полей ни индексов. Работать с ними получается только через "Microsoft OLE DB Provider for Visual FoxPro" который был стянут с MSDN Visual FoxPro. Да, если интересно, у этих DBF-файлов, первый байт заголовка равен $30 - такого я ни в одном описании не встречал. |
![]() |
Сообщ.
#16
,
|
|
Использую конект
1. Provider=MSDASQL.1;Persist Security Info=False;Connect Timeout=15;Extended Properties="Driver={Microsoft FoxPro VFP Driver (*.dbf)};UID=;SourceDB=c:\FCB\BASE;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;";Locale Identifier=1049 Таблица открывается (первый байт заголовка равен $30) Второй вариант тоже открывает 2. Provider=MSDASQL.1;Persist Security Info=False;Connect Timeout=15;Extended Properties="CollatingSequence=ASCII;DBQ=c:\FCB\BASE;DefaultDir=c:\FCB\BASE;Deleted=0;Driver={Microsoft dBase Driver (*.dbf)};DriverId=533;FIL=dBase 5.0;FILEDSN=C:\Program Files\Common Files\ODBC\Data Sources\ttt.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;";Locale Identifier=1049 |
![]() |
Сообщ.
#17
,
|
|
В обоих вариантах использую Microsoft OLE DB Provider for ODBC Drivers
|
Сообщ.
#18
,
|
|||
|
Далеко не так, Эксель нормально работает только с dBase IV, в остальных случаях как повезет. По крайней мере форматы dBase VII и Visual FoxPro (подчеркиваю именно форматы, а не таблицы созданные там) не берет. |
![]() |
Сообщ.
#19
,
|
||||
|
Согласен таблицу Visual FoxPro 6 не понимает (первый байт таблицы $30) они изменили в хидере определение полей |
Сообщ.
#20
,
|
|
|
Ребят спасибо за такие развернутые ответы. Понимаете в чем дело, была написана программа. Я уже ехал за деньгами и тут в друг заказчик сообщает, что теперь одна из подгружаемых таблиц будет в формате FoxPro. Программа полностью написана на BDE, переписывать ее на ADO скажу честно нет, не времени не желания. Можно ли просто отобразить таблицу FoxPro без ADO, если нет, то, что такое C:\Program Files\Common Files\ODBC\Data Sources\ttt.dsn
|
Сообщ.
#21
,
|
|
|
БДЕ не имеет ограничения, работать можно с чем угодно, или с помощью родных драйверов (очень мало) или через SQL Links c SQL серверами (любыми, если есть драйвер) или через ODBC тоже если есть ODBC драйвер.
С Фокспро можно работать родным драйвером (поддержка до версии 2.5, можно и выше если формат не выходит за пределы версии) , но это не рекомендуется, поскольк Борланд прямо сказал, ограничено и только ReadOnly, остальное на свой страх и риск. Правильнее найти нужный ODBC драйвер, большинство из которых в той или иной степени кривы. Когда говорят, что таблицы формата FoxPro, по сути ни о чем не говорят. Но даже при указании точной версии, остаются не ясными вопросы с кодировкой, используемыми полями и что наиболее важно, так это индексы. Индексы ФокПро никто кроме него самого не в состоянии поддержать по полной, ни один драйвер, поскольку они могут быть построены на пользовательских функциях. |