![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
SQL запрос [D5, dBase, FoxPro]
Chainik © (2002-06-03 11:11:00)Здравствуйте, уважаемые мастера! Помогите, пожайлуста, составить запрос, а то у меня че то не выходит(может синтаксис неверен?)
при такой конструкции:
....
with Query1 do begin
SQL.Clear;
SQL.Add("insert into C:\Temp\temp.dbf (Ccn1,Count) select Ccn,COUNT(*) FROM + "FileName" + GROUP BY Ccn");
SQL.Open;
end;
...
дельфя начинает ругаться, что мол синтаксис неправильный!Как будет правильно?
Бежечаночка (2002-06-03 15:47:00) [1]Не мучайся, с From Select у тебя ничего не получится в Local SQL, я задавала аналогичный вопрос в конфе, правильно пишет fnatali: в этом случае обходятся 2 запросами.
Chainik (2002-06-03 15:38:00) [2]>yozhik (03.06.02 14:50)
попробуй так ...
"insert into "C:\Temp\temp.dbf""+#13#10+
:((
yozhik (2002-06-03 14:50:00) [3]попробуй так ...
"insert into "C:\Temp\temp.dbf""+#13#10+
"select CAST(Ccn as CHARACTER(2)),CAST(COUNT(*) as CHARACTER(6))"+#13#10+
"FROM ""+FileName+"" GROUP BY Ccn"
Val (2002-06-03 14:45:00) [4]>fnatali © (03.06.02 14:24)
А вообще LocalSQL поддерживает подзапросы?
насколько я помню, в нем можно для таблиц одинаковой структуры сделать так:
insert into table2 select * from table1 <условие>
Chainik (2002-06-03 14:37:00) [5]>yozhik
Выдает - [MS ODBC Visual FoxPro Driver]Syntax error.".
Типы полей T - character (2), Kolvo Character (6)
>fnatali а у Вас есть какой-нить примерчик с исп. подзапросов?
Если есть, будьте добры, закиньте на мыло.
asafr (2002-06-03 14:28:00) [6]Пардон, GROUP BY - конечно
asafr (2002-06-03 14:27:00) [7]Может GROYP BY COUNT1
(COUNT в GROUP BY замени, хотя бы, на COUNT1, т.к. это зарезервированное слово)
fnatali (2002-06-03 14:24:00) [8]А вообще LocalSQL поддерживает подзапросы? Сомневаюсь я. Попробуй другим методом: первый запрос(Query1)
select Ccn,COUNT(*) FROM "" + FileName + "" GROUP BY Ccn
Второй запрос(Query2)
insert into "C:\Temp\temp.dbf" (Ccn1,Count) values(:p1,:p2);
Затем
Query1.first;
while not Query1.eof do
begin
Query2.parambyname("p1").as...=Query1.fieldbyname("Ccn1").as...
Query2.parambyname("p2").as...=Query1.fieldbyname("Count").as...
Query2.execsql;
Query1.next;
end;
Попробуй, должно получиться
yozhik (2002-06-03 14:22:00) [9]и какие типы полей в "C:\Temp\temp.dbf" ?
yozhik (2002-06-03 14:21:00) [10]а какую ошибку выдает?
Chainik (2002-06-03 13:59:00) [11]>yozhik (03.06.02 13:35)
<а так "insert into "C:\Temp\temp.dbf" (Ccn1,Count) select Ccn,COUNT(*) FROM "" + FileName + "" GROUP BY Ccn"?>
И так не идет!Проверил на вставку единичного значения
"insert into C:\Temp\temp.dbf (T,Kolvo) values ("01", "500")"- идет! А с подзапросом - не хочет!
yozhik (2002-06-03 13:35:00) [12]а так "insert into "C:\Temp\temp.dbf" (Ccn1,Count) select Ccn,COUNT(*) FROM "" + FileName + "" GROUP BY Ccn"?
Val (2002-06-03 13:34:00) [13]а можно текст запроса, у вас получается?
Chainik (2002-06-03 13:30:00) [14]В принципе вопрос стоит такой: мне нужно сохранить резулт запроса в таблице(временной).Может быть использовать что-то другое, кроме вставки?
Chainik (2002-06-03 13:19:00) [15]>PSZ Не идет и все тут!!!
Открыл MS VFoxPro и там не идет. Однозначно что-то с синтаксом.Но какой он должен быть???
yozhik (2002-06-03 13:16:00) [16]или так:
"insert into ""C:\Temp\temp.dbf"" (Ccn1,Count) select Ccn,COUNT(*) FROM" "" + FileName + "" "GROUP BY Ccn"
Chainik (2002-06-03 13:05:00) [17]>Val Пробовал в Explorer"e такая же ошибка
Переименовал.Если проблемы со вставкой подзапроса, то как быть?.Мне нужно чтобы запрос выполнялся динамически в проге.
>asafr
Пишет [MS ODBC Visual FoxPro Driver]Syntax error.".
PSZ (2002-06-03 12:56:00) [18]А еще может быть так:
"insert into ""C:\Temp\temp.dbf"" (Ccn1,Count) select Ccn,COUNT(*) FROM" + FileName + "GROUP BY Ccn"
asafr (2002-06-03 12:41:00) [19]А не так Ли надобно исправить?
"insert into C:\Temp\temp.dbf (Ccn1,Count) select Ccn,COUNT(*) FROM" + FileName + "GROUP BY Ccn"
Val (2002-06-03 11:57:00) [20]попробуйте выполнить свой запрос из SQL-explorer, вообще, у Local-SQL, по моему, какие-то проблемы со вставкой из подзапроса. И лучше переименовать в таблице temp поле Count - это служебное слово.