Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

insert into....select   Найти похожие ветки 

 
denis24   (2004-11-10 16:01) [0]

Почему кагда я пытаюсь вы полнить сабж через Adoquery пишет"Текущий проводник не поддерживает возврат нескольких наборов записей в результате одной опрерации"?


 
Johnmen ©   (2004-11-10 16:05) [1]

Как пытаешься?


 
diabolik_krsk   (2004-11-10 16:06) [2]

Код приведи, который пишешь.


 
denis24   (2004-11-10 16:15) [3]

DataModule2.ADOQueryDiagnoz_tblrecomendations.close;
               DataModule2.ADOQueryDiagnoz_tblrecomendations.sql.clear;
               DataModule2.ADOQueryDiagnoz_tblrecomendations.sql.add("insert into temp_recomendations ");
               DataModule2.ADOQueryDiagnoz_tblrecomendations.sql.add("select tblDiagnoz_Recomendations.id_recomendations, tblRecomendations.name_recomendations  from tblRecomendations, tblDiagnoz_Recomendations");
               DataModule2.ADOQueryDiagnoz_tblrecomendations.sql.add("where tblDiagnoz_Recomendations.id_diagnoz=:p1 and ");
               DataModule2.ADOQueryDiagnoz_tblrecomendations.sql.add("tblRecomendations.id_recomendations=tblDiagnoz_Recomendations.id_ recomendations");
               DataModule2.ADOQueryDiagnoz_tblrecomendations.Parameters.ParamByName ("p1").Value :=DataModule2.ADOQueryMain_diagnoz.fieldbyname("id_diagnoz").AsInteger;
               DataModule2.ADOQueryDiagnoz_tblrecomendations.Open;


 
Johnmen ©   (2004-11-10 16:27) [4]

А почему Open ? Что "открыть" предполагаешь ?
PS F1 помогает...


 
msguns ©   (2004-11-10 16:27) [5]

Переведем на русский эту абракадабру:

INSERT INTO Temp
  SELECT tblD.id, tblR.Name FROM tblR, tblD
  WHERE tblD.id=:p1 AND tblR.id=tblD.id

Получаем запрос на вставку.

Затем читаем (после перевода, ессно):
  ParamByName("p1").value := FieldByName(id).AsInteger;
 
и, наконец,

 OPEN

!!!

А ведь причина ошибки, ИМХО, в том, что за частоколом кода (все эти DataModule2... и зубодробительные названия таблиц и полей) ни хрена не видно этой опечатки.

Грустно, девочки ;((


 
denis24   (2004-11-10 16:28) [6]

Еще запрос
sql.add("SELECT id_main, count(id_diagnoz) AS count_diagnoz INTO temp");
sql.add("FROM tblmain_diagnoz GROUP BY id_main");

на первой строке пишет accses violation on addres... in module
msjet40.dll
Потом пишет сабж.Но всеравно создает таблицу temp  с нужными данными.
Стоит m_dac 2.7
База access2000
BDE 5.01


 
Соловьев ©   (2004-11-10 16:31) [7]


> BDE 5.01

Мдя... ADO юзай.


 
Соловьев ©   (2004-11-10 16:32) [8]


> DataModule2.ADOQueryDiagnoz_tblrecomendations.Open;

Хотя АДО... :)


 
Johnmen ©   (2004-11-10 16:38) [9]

>denis24   (10.11.04 16:28) [6]
>SELECT ... INTO ... FROM ... GROUP BY ...

Где ты этого начитался?


 
denis24   (2004-11-10 16:42) [10]

Посыпаю голову пеплом.........
Но при "select into ....." access violation все равно остался


 
Соловьев ©   (2004-11-10 16:47) [11]


> >denis24   (10.11.04 16:28) [6]
> >SELECT ... INTO ... FROM ... GROUP BY ...
>
> Где ты этого начитался?

это нормально :) Сохраняются результаты в таблицу.


 
Соловьев ©   (2004-11-10 16:48) [12]


> DataModule2.ADOQueryDiagnoz_tblrecomendations.sql.add("insert
> into temp_recomendations ");

DataModule2.ADOQueryDiagnoz_tblrecomendations.sql.add("insert
into temp_recomendations (field1, field2)");


 
denis24   (2004-11-10 17:02) [13]

Соловьев дал
http://delphimaster.net/view/3-1099920344/


 
Johnmen ©   (2004-11-10 17:05) [14]


> Соловьев ©   (10.11.04 16:47) [11]
> это нормально :) Сохраняются результаты в таблицу.


Вот мне и интересно, где про это написано. А то, видимо, что-то упустил...:)


 
Соловьев ©   (2004-11-10 17:08) [15]


> Вот мне и интересно, где про это написано. А то, видимо,
> что-то упустил...:)

хелп по Access :)


 
denis24   (2004-11-10 17:12) [16]

to Соловьев ©   (10.11.04 16:48) [12]
Это да
но перед этим создать ее нужно а потом в цикле забивать.....


 
Соловьев ©   (2004-11-10 17:14) [17]


> Это да
> но перед этим создать ее нужно а потом в цикле забивать.....

В смысле? Чего-то я не догоню... Т.е. ты вставляешь в таблицу которой нет? Если да, то почему??????????????????????????????????????


 
Vlad ©   (2004-11-10 17:15) [18]


> Вот мне и интересно, где про это написано. А то, видимо,
> что-то упустил...:)

у меня этот файл называется JETSQL35.HLP


 
denis24   (2004-11-10 17:23) [19]

если делать без select...into.....from....group by
то ,если я правильео понимаю делаем так
create table temp (id_diagnoz numeric(16,0),count_diagnoz numeric(16,0))
.
.
adoquery1.sql.add(select id_main, count(id_diagnoz) AS count_diagnoz FROM tblmain_diagnoz GROUP BY id_main)
.
.
while adoquery1.eof=false do
.
.
adoquery2.sql.add("insert into temp values(adoquery1.fieldbyname("id_diagnoz").asinteger+","+adoquery1.fieldbyname("name_diagnoz").asinteger

adoquery2.execsql
adoquery1.next;
.
.
..


 
Соловьев ©   (2004-11-10 17:29) [20]


> если делать без select...into.....from....group by
> то ,если я правильео понимаю делаем так
> create table temp (id_diagnoz numeric(16,0),count_diagnoz
> numeric(16,0))
> .
> .
> adoquery1.sql.add(select id_main, count(id_diagnoz) AS count_diagnoz
> FROM tblmain_diagnoz GROUP BY id_main)
> .
> .
> while adoquery1.eof=false do
> .
> .
> adoquery2.sql.add("insert into temp values(adoquery1.fieldbyname("id_diagnoz").asinteger+","+adoquery1.fieldbyname("name_diagnoz").asinteger
>
> adoquery2.execsql
> adoquery1.next;
> .
> .
> ..

А какого????? Блин одна конструкция select...into.....from....group by все это делает.


 
denis24   (2004-11-10 17:52) [21]

так да!
но вылетает access violation
Может настройки какието adoconnection(они у меня по умолчанию)


 
Johnmen ©   (2004-11-10 17:53) [22]

>Соловьев ©   (10.11.04 17:08) [15]
>хелп по Access :)

>Vlad ©   (10.11.04 17:15) [18]
>у меня этот файл называется JETSQL35.HLP

Благодарю. Аксеса у меня нет, а файл есть...:)


 
Соловьев ©   (2004-11-10 18:04) [23]


> но вылетает access violation

Приведи полный код при использовании select...into.....from....group by


 
msguns ©   (2004-11-10 18:05) [24]

>Johnmen ©   (10.11.04 17:53) [22]
>>Vlad ©   (10.11.04 17:15) [18]
>>у меня этот файл называется JETSQL35.HLP
>Благодарю. Аксеса у меня нет, а файл есть...:)

Блин ! А у меня есть аксес, но нет файла !!!
Если не трудно, намыль, Жень мне этот долбанный JETSQL35(Лучше 40). Все мои попытки найти его в MSDN ни к чему не привели ;((
Или руки кривые, или глаза косые. А скорее всего и то и другое ;))
Вот и приходится мучится интуитивно. Например, вот прорюхал, что для контекстного поиска надо в ADO давать
 Field LIKE "John%",

а в самом аксесе
 Field LIKE "John*"

Ну супер просто !!! Час гробился ! Без доки-то ! Хэлп по аксесу
это вообще что-то. Предполагается, что прогер (или узер ?) все должен делать через конструктор или его изумительных мастеров.

Сори за офтоп, конечно, но неудобно ветку рожать по этому вопросу - люди уже смеются небось ;))


 
Соловьев ©   (2004-11-10 18:14) [25]


> JETSQL35.HLP

jetsql40.chm поисчи


 
msguns ©   (2004-11-10 18:22) [26]

>Соловьев ©   (10.11.04 18:14) [25]

Блин, поставил сидюк с инсталляхой офиса и там нашел !!!!
Почему при инстале не переписался ума не приложу. Вроде непьяный был. Мне каааэтся ;)))


 
msguns ©   (2004-11-10 18:24) [27]

Удалено модератором
Примечание: Личная переписка


 
Соловьев ©   (2004-11-10 18:24) [28]

Удалено модератором
Примечание: Личная переписка


 
msguns ©   (2004-11-10 18:26) [29]

Удалено модератором
Примечание: Личная переписка


 
Соловьев ©   (2004-11-10 18:27) [30]

Удалено модератором
Примечание: Личная переписка


 
denis24   (2004-11-10 19:00) [31]

SELECT tblMain_diagnoz.id_main, Count(tblMain_diagnoz.id_diagnoz) AS [Count_diagnoz] into temp FROM tblmain_diagnoz GROUP BY tblmain_diagnoz.id_main

Взят из конструктора access в нем работает на ура


 
Соловьев ©   (2004-11-10 19:04) [32]

Это понятно, а делфи как ты его запускаешь - код только полный.


 
denis24   (2004-11-10 19:09) [33]

DataModule2.ADOQuery2.close;
               DataModule2.ADOQuery2.sql.Clear;
               DataModule2.ADOQuery2.SQL.Add("SELECT tblMain_diagnoz.id_main, Count(tblMain_diagnoz.id_diagnoz) AS [Count_diagnoz] into temp");
               DataModule2.ADOQuery2.sql.add("FROM tblmain_diagnoz GROUP BY tblmain_diagnoz.id_main");
               DataModule2.ADOQuery2.ExecSQL;


 
Соловьев ©   (2004-11-10 19:20) [34]


> DataModule2.ADOQuery2.ExecSQL;

DataModule2.ADOQuery2.Open;


 
denis24   (2004-11-10 19:49) [35]

Дебугер показывает эту ошибку на первой строке запроса,не доходя до open.Без count все работает


 
denis24   (2004-11-10 20:02) [36]

все решил
удалил и создал adoquery


 
denis24   (2004-11-11 10:27) [37]

Эта ошиба выскакивает только когда запускаю проект в среде делфи,
при запуске чистого экзешника ее нет...



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.036 c
1-1101580866
Dot
2004-11-27 21:41
2004.12.12
Динамика


8-1094910180
InfMag
2004-09-11 17:43
2004.12.12
Форматы данных


1-1101681650
che
2004-11-29 01:40
2004.12.12
PaintBox..


14-1100879366
Ilya___
2004-11-19 18:49
2004.12.12
У меня есть строковое значение 3294567000 Мне нужно его перевест


4-1098867565
GuestTM
2004-10-27 12:59
2004.12.12
Как отловить ACCESS VIOLATION...