|
|
|
непонятка с SQL запросом в ODBCDirect
|
|||
|---|---|---|---|
|
#18+
Вот так я соединяюсь к таблице DBF необходимо на основе данных с этой таблицы создать новую таблицу: Set ws = DBEngine.CreateWorkspace("", "Admin", "", dbUseODBC) Set con = ws.OpenConnection("ConName", dbRunAsync, False, _ "ODBC;DSN=Visual FoxPro Tables;UID=;PWD=;SourceDB=c:\NSI;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;") Соединяется нормально дальшо пишу запрос на создание таблицы: con.Execute "CREATE TABLE c:\NSI\tblmy" & _ "([Vagon] text, [First] datetime, [Second] datetime)" Создает отлично таблицу без проблем затем пытаюсь заполнить таблицу пишу запрос: con.Execute "INSERT INTO tblmy IN 'C:\NSI' 'ODBC;DSN=Visual FoxPro Tables;UID=;PWD=;SourceDB=c:\NSI;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;'" & _ " SELECT VAGON, Format(DateSerial(Mid([DATEN],3,2), Mid([DATEN],5,2), Right([DATEN],2)), 'dd/mm/yy') AS [First]," & _ " Format(DateSerial(Mid([DATEK],3,2), Mid([DATEK],5,2), Right([DATEK],2)),'dd/mm/yy') AS [Second]" & _ " FROM Arenda" пишет ошибку 3146 ODBC-ошибка вызова. Че не так? Еще пробовал написать тут же запрос: con.Execute "SELECT *" & _ " INTO d:\CrSprav\Input\tblAr" & _ " FROM Arenda" & _ " WHERE (('" & DData & "') Between DATEN And DATEK)" пишет ошибку 3146 ODBC-ошибка вызова. Хотя просто запрос на выборку con.Execute "SELECT *" & _ " FROM Arenda" & _ " WHERE (('" & DData & "') Between DATEN And DATEK)" работает нормально. Т.е. Не хотят работать запросы INSERT ... INTO... и SELECT ... INTO ... Подскажите что я упустил в запросах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 16:38:53 |
|
||
|
непонятка с SQL запросом в ODBCDirect
|
|||
|---|---|---|---|
|
#18+
Формат даты должен быть американским mm/dd/yyyy. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 16:59:40 |
|
||
|
непонятка с SQL запросом в ODBCDirect
|
|||
|---|---|---|---|
|
#18+
AndreyMpФормат даты должен быть американским mm/dd/yyyy. Пробовал не помогает таже ошибка выходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 17:23:05 |
|
||
|
непонятка с SQL запросом в ODBCDirect
|
|||
|---|---|---|---|
|
#18+
Да, забыл сказать что дата должна ограничиваться диезами, т.е. #11/30/2005# ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 17:38:48 |
|
||
|
непонятка с SQL запросом в ODBCDirect
|
|||
|---|---|---|---|
|
#18+
AndreyMpДа, забыл сказать что дата должна ограничиваться диезами, т.е. #11/30/2005# это тоже предусмотрел у меня переменная в запросе получается так Dim DData As String DData = "#" DData = "#" Mid(CStr(Date - 1), 4, 2) & "/" & Left(CStr(Date - 1), 2) & "/" & Mid(CStr(Date - 1), Len(Date - 1) - 1, 2) & "#" Мне не понятно почему два запроса с одинаковыми выборками и с одной и той же переменной: con.Execute "SELECT *" & _ " FROM Arenda" & _ " WHERE (('" & DData & "') Between DATEN And DATEK)" работает нормально, а запрос: con.Execute "SELECT *" & _ " INTO d:\CrSprav\Input\tblAr" & _" FROM Arenda" & _ " WHERE (('" & DData & "') Between DATEN And DATEK)" не работает. Че не так посмотрите синтаксис Into может как то подругому надо указывать путь к таблице или указать DSN здесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2005, 18:13:49 |
|
||
|
непонятка с SQL запросом в ODBCDirect
|
|||
|---|---|---|---|
|
#18+
\ попробуй так SELECT * INTO 'd:\CrSprav\Input\tblAr\имяфайла.dbf' FROM Arenda когда обращяешся к данным из вне то нужно указать сам путь и файл базы данных особенно если это fox или dBase которые используют папки для группировки таблиц на счет соединения что бы проверить вставь Ado в форму создай connetionstring и DSN файл просмотри в строке connetionstring параметры соединения можешь даже скопировать этот текст и использовать в качестве соединения con ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 07:17:31 |
|
||
|
непонятка с SQL запросом в ODBCDirect
|
|||
|---|---|---|---|
|
#18+
TIKO\ попробуй так SELECT * INTO 'd:\CrSprav\Input\tblAr\имяфайла.dbf' FROM Arenda Так тоже попробовал, таже ошибка. У меня должен создаться файл tblAr.dbf SELECT * INTO 'd:\CrSprav\Input\tblAr.dbf' FROM Arenda Я гдето видел что в FoxPro синтаксис запросов INTO ... и INSERT ... INTO ... отличается от Access-го, что надо INTO писать в самом конце. Примерно вот так: SELECT * FROM Arenda WHERE (('" & DData & "') Between DATEN And DATEK) INTO d:\CrSprav\Input\tblAr.dbf Подскажите синтаксис, кто знает, этих SQL запросов в FoxPro. (INTO ... и INSERT ... INTO ...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 13:33:36 |
|
||
|
непонятка с SQL запросом в ODBCDirect
|
|||
|---|---|---|---|
|
#18+
Посмотри здесь . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2005, 13:58:55 |
|
||
|
непонятка с SQL запросом в ODBCDirect
|
|||
|---|---|---|---|
|
#18+
Пользователь2Посмотри здесь . Спасибо за совет. Нашел кое что. Сейчас запрос переделал по синтаксису FoxPro con.Execute "SELECT *" & _ " FROM c:\NSI\Arenda.dbf" & _ " WHERE (('" & DData & "') Between DATEN And DATEK)" & _ " INTO TABLE d:\CrSPRAV\Input\tblAr.dbf" Работает вроде без ошибок но таблицу в указанном месте не создает, хотя тот же запрос попробовал на FoxPro запустить SELECT *; FROM c:\NSI\Arenda.dbf; WHERE (('20051212') Between DATEN And DATEK); INTO TABLE d:\CrSPRAV\Input\tblAr.dbf нормально создает таблицу в указанном месте. У кого есть какие новые соображения всегда им рад :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 07:42:22 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=33431471&tid=2166706]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
194ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 512ms |

| 0 / 0 |
