|
|
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
Беда вот в чем.... Есть OleDbConnection с такой строкой: Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBASE IV; Data Source=C:\\Temp Все работает замечательно до тех пор пока я не попытаюсь выполнить запрос вида: SELECT X.USER_NICK , 3 as SUMMA FROM XINNER JOIN Y ON Y.ID_I = Y.ID_I INNER JOIN Z ON Z.TOUR = Z.TOUR Орет что не понимает X.ID_I = Y.ID_I INNER JOIN Z ON Y.TOUR = Z.TOUR Это что же, в .NET не работают такие простые запросы??? Даже в SQLExplorer-е в Builder-е работают сто раз более наврочаные запросы! А запрос вида: SELECT X.USER_NICK , 3 as SUMMA FROM XINNER JOIN Y ON Y.ID_I = Y.ID_I Пожалйста.... Что, выходит я могу соединить не больше 2-х таблиц в запросе? Короче, или я идиот, или разработчикам надо сломать пальцы.... ))) Откройте истину кто-нибудь, а то уже в бешенство просто ввергло то что не могу выполнить такой простой запрос.. (( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 14:35 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
1. скопируй запрос корректно, а то у тебя X сливается с INNER, да и условия соединения несколько странные (лучше использовать тэг SRC) 2. попробуй написать запрос без слова INNER (только JOIN) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 15:10 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
Это просто я тут правил названия талиц, вот и сливается....)) Написал без всякий JOIN, обычными WHERE и все заработало. Вообще интресно, что некоторые элементы не работают, на некоторые, такие как UNION ALL напротив, работают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 15:26 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
Ох-х-х... Например, в Oracle поддержка ANSI SQL (в области JOIN) появилась только в 9 (до этого соединение таблиц было только через WHERE). Дык до сих пор (даже в 10) в нем полно глюков, поэтому большинство до сих пор обходится "родным" синтаксисом Oracle... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 15:42 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
Во блин... джойны ... запросы к дбф... ну ни зя... Кто вообще сказал что можно?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 19:00 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
buser джойны ... запросы к дбф... ну ни зя... Кто вообще сказал что можно?! А где написано, что низзя? По неосведомленности работаем же... _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 08:26 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
:)) Хорошо - ни низя... Может фоксовый провайдер поддерживает JOIN'ы? Попробуйте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 09:47 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
buser Попробуйте... Гм... Действительно... На Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Syntax error (missing operator) in query expression '(d_l_I.Master_ID=m.ID)\r\nleft outer join det_l_II d_l_II on (d_l_II.Master_ID=m.ID) and (d_l_II.det_l_I_ID=d_l_I.ID)'. На Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Syntax error in FROM clause. vfpoledb все это переварил без напряга... Беру свои слова обратно... Вернее - уточняем: buser джойны ... запросы к дбф... ну ни зя... Кто вообще сказал что можно?! относиться только к Microsoft.Jet.OLEDB.4.0 P.S. А борманский Database Desktop тоже накосячил: на Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 11:27 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
Без JOIN-ов тяжко.. Один и тот же запрос с ними выполняется на порядок быстрее чем без них. Это относится как к Борландовскому SQL Explorer-у так и к JET. ((( Вообще разница колосальная в драйверах. Итог - перевел прогу на SQL 2000 - то что работало под JET перестало работать. Универсальность OleDB в .NET отсутствует напроч. То что проходит под SqlConnection и иже сним классы, напрочь отказывается работать с OleDbConnetion. Может я тупой, но уже хочется покалечить разработчиков. )) Например такая строка: delete * from XXX (where id_i = 3) - запросто рабоатет под JET. Под SQLOLEDB - посылает нахер со словами "incorrect syntax near '*' " (( Так же, вот такой код: insert into Result(tour,K1,K2,S1,S2) values (@tour,trim(@KD1),trim(@KD2),@SD1,@SG1) с вот таким заполнением: ....... param[0] = new OleDbParameter("@tour", Convert.ToInt32(NTour.Text)); param[1] = new OleDbParameter("@K1", KD4.Text); param[2] = new OleDbParameter("@K2", KG4.Text); param[3] = new OleDbParameter("@S1", Convert.ToInt32(SD4.Text)); param[4] = new OleDbParameter("@S2", Convert.ToInt32(SG4.Text)); ....... if (p_pr != null) { for (int i = 0; i < p_pr.Length; i++) { m_cmd.Parameters.Add(p_pr ); } } Запросто работает под JET и SqlConnectin, но под SQLOLEDB - посылает на х...елп. ((( Хотя при отладке видно что параметры заполнились, что все вроде с виду ОК. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 10:57 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
Suzeren delete * from XXX (where id_i = 3) звездец ( * ) это ж, каж-ся, клетворная мелкософтовская экзотика По крайней мере, в стандарте я такого синтаксиса не встречал. Suzeren param[0] = new OleDbParameter("@tour", Convert.ToInt32(NTour.Text)); попробуйте вместо public OleDbParameter(string, object); заюзать public OleDbParameter(string, OleDbType); Suzeren но под SQLOLEDB - посылает какими словами? Приведите текст выдаваемого сообщения. _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 12:17 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
Да-да-да... с экзотикой разобрался, виноват. Решил плюнуть на этот JET, ибо тормозит страаашно просто. Решил делать ерез фоксовский драйвер. Теперь проблема такая.... я уж и так, и этак, и через параметры и просто строкой, пытаюсь сделать такое: insert = "insert into Result(tour,K1,K2,S1,S2) values (15,'GGG','AAA',0,0)"; OleDbCommand newc = new OleDbCommand(insert,ODBC); ODBC.Open(); newc.ExecuteNonQuery(); ODBC.Close(); ругается следующим: Command contains unrecognized pharse/keyword... Я вообще в Фоксе никогда ниего не делал... там что, как-то по другому надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 12:30 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
Фррр... разобрался )) Все, сегдня больше не буду ничего спрашивать ))) Пятница, видимо совсем потерял такое качество как внимание ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 12:57 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. Код: plaintext 1. _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 14:00 |
|
||
|
INNER JOIN при работе с DBF
|
|||
|---|---|---|---|
|
#18+
А где ты в моем коде '?' увидал в параметризированом запросе? )) Я спрашивал про конкретный вариант кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2007, 14:50 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=34475583&tid=1352842]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 383ms |

| 0 / 0 |
