Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Вниз

запрос SQL   Найти похожие ветки 

 
ИРГ   (2009-09-27 09:52) [80]

Как же менять папки ?


 
Anatoly Podgoretsky ©   (2009-09-27 12:37) [81]

Писец полный, не пока еще не полный.


 
Плохиш ©   (2009-09-27 13:05) [82]


> ИРГ   (27.09.09 09:48) [79]
>
> В учебниках нет конкретной этой проблемы.
> Программистом я не буду мне приспичило нужно сейчас

Найми программиста.

Почему каждый сантехник пытается заняться не своим делом?


 
test ©   (2009-09-27 13:18) [83]

ИРГ   (27.09.09 09:52) [80]
Если dbf в запросе подставляешь имя таблицы(*файла с путем*) и все ок.

Плохиш ©   (27.09.09 13:05) [82]
Нет именно писать все норовят, благо Васька с класса сказал что он свою сборку CS написал, а я чем хуже, я свою сборку Starcraft 2 напишу это жы просто ))


 
ИРГ   (2009-09-27 13:36) [84]

test ©
А как же программно менять путь ?


 
Плохиш ©   (2009-09-27 13:40) [85]


> А как же программно менять путь ?

переменная := путь;


 
ИРГ   (2009-09-27 13:48) [86]

у меня объявленная переменная
b:=1;

while i<12 do
begin
 dir := "jet"+IntTostr(i);
 DataModule2.ADOQuery2.SQL.Add("Insert into MyTable (IDn, f, i, o, dr, v, m, s, f) SELECT * from ((SELECT IDn, f, i, o, dr FROM Atab IN "b" "dBASE IV;") ");
 DataModule2.ADOQuery2.SQL.Add("INNER JOIN (SELECT IDn, v, m, s, f FROM Btab IN  "b" "dBASE IV;") ON Atab.IDn = Btab.IDn) ");
 inc(i);
 inc(b); // прибавляет + 1

в чем дело не пойму !


 
Inovet ©   (2009-09-27 13:58) [87]

> [86] ИРГ   (27.09.09 13:48)

Вот это что
dir := "jet"+IntTostr(i);

Не знаю зачем там "jet", убери, раз в имени такого нет соответсвенно будет
"... FROM " + dir + " ..."


 
ИРГ   (2009-09-27 14:18) [88]

Все равно пишет ошибочный путь похоже подключение не правильно


 
Inovet ©   (2009-09-27 14:22) [89]

> [88] ИРГ   (27.09.09 14:18)
> Все равно пишет ошибочный путь похоже подключение не правильно

Надеюсь в обеих местаз исправил


 
ИРГ   (2009-09-27 14:29) [90]

Inovet ©  

Спасибо  ошибочный путь теперь не пишет

Ошибка неправильно определен объект parameter


 
ИРГ   (2009-09-27 16:31) [91]

Insert into не пашет ни фига


 
test ©   (2009-09-27 17:56) [92]

ИРГ   (27.09.09 16:31) [91]
тебе нужно соединение с бд куда инсерт будешь делать, тебе нужна созданная таблица и бд


 
Anatoly Podgoretsky ©   (2009-09-27 18:03) [93]

> ИРГ  (27.09.2009 16:31:31)  [91]

Издеваешься над форумом, стебешься.


 
Сергей М. ©   (2009-09-27 18:23) [94]


> ошибочный путь теперь не пишет


А куда делась b ?


 
Ирг   (2009-09-28 06:52) [95]

var
dir:string;
i:integer;
begin
i:=1;
DataModule2.ADOQuery2.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\;Extended Properties=dBASE IV;Persist Security Info=False";
DBGrid1.Options:= DBGrid1.Options - [dgTitles];
DataModule2.ADOQuery2.SQL.Add("delete All from MyTable");
DataModule2.ADOQuery2.Close;
DataModule2.ADOQuery2.SQL.Clear;
while i<12 do
begin
 dir := "С:\"+IntTostr(i);
 DataModule2.ADOQuery2.SQL.Add("Insert into MyTable (IDn, f, i, o, dr, v, m, s, f) SELECT * from ((SELECT IDn, f, i, o, dr FROM Atab IN "+dir +" "dBASE IV;") ");
 DataModule2.ADOQuery2.SQL.Add("INNER JOIN (SELECT IDn, v, m, s, f FROM Btab IN  "+dir +" "dBASE IV;") ON Atab.IDn = Btab.IDn) ");
 inc(i);
DataModule2.ADOQuery2.ExecSQL;
DataModule2.ADOQuery2.SQL.Clear;
end  ;
DataModule2.ADOQuery2.Active:=true;


b нету она и ненужна


 
test ©   (2009-09-28 07:36) [96]

dir := "С:\"+IntTostr(i);
Имя файла настоящее должно быть, то которое у тебя реально существует.
например:
c:\output\1.dbf

что то вроде такого
dir := "С:\<директория где твои файлы лежат>\<имя файла>"+IntTostr(i)+".dbf";


 
test ©   (2009-09-28 07:46) [97]

Это не ответный прикол с Королевства?


 
sniknik ©   (2009-09-28 08:03) [98]

> Имя файла настоящее должно быть, то которое у тебя реально существует.
> например:
> c:\output\1.dbf
не обязательно, т.к. там часть пути в конекте, т.е. в сумме они должны давать реальный путь и файл, а не все в имени файла. хотя, все в имени, тоже вполне рабочий вариант.

> Это не ответный прикол с Королевства?
х.з. может сам по себе придуривается, а может и не придуривается....


 
Сергей М. ©   (2009-09-28 08:20) [99]


> b нету она и ненужна


А где коннекшн ? Где создание MyTable ?


 
Ирг   (2009-09-28 09:16) [100]

Мне не до приколов !!!!!

так ?

var
dir:string;
i:integer;
begin
i:=1;
DataModule2.ADOQuery2.ConnectionString:="Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Initial Catalog=C:\";
DBGrid1.Options:= DBGrid1.Options - [dgTitles];
DataModule2.ADOQuery2.SQL.Add("create table MyTable (intval1 int, intval2 int)");
DataModule2.ADOQuery2.Close;
DataModule2.ADOQuery2.SQL.Clear;
while i<12 do
begin
dir := "С:\"+IntTostr(i);
DataModule2.ADOQuery2.SQL.Add("Insert into MyTable (IDn, f, i, o, dr, v, m, s, f) SELECT * from ((SELECT IDn, f, i, o, dr FROM Atab IN "+dir +" "dBASE IV;") ");
DataModule2.ADOQuery2.SQL.Add("INNER JOIN (SELECT IDn, v, m, s, f FROM Btab IN  "+dir +" "dBASE IV;") ON Atab.IDn = Btab.IDn) ");
inc(i);
DataModule2.ADOQuery2.ExecSQL;
DataModule2.ADOQuery2.SQL.Clear;
end  ;
DataModule2.ADOQuery2.Active:=true;


 
test ©   (2009-09-28 09:39) [101]

Ирг   (28.09.09 09:16) [100]
Колчиство типы полей в таблице должны совпадать с запросом
create table MyTable (intval1 int, intval2 int)
Запросу просто некуда все это писать, не забудь чтобы типы совпадали
Insert into MyTable (IDn, f, i, o, dr, v, m, s, f)
Ну и табллицу ты где создаешь?

sniknik ©   (28.09.09 08:03) [98]
Не знал


 
Ирг   (2009-09-28 09:43) [102]


> Колчиство типы полей в таблице должны совпадать с запросом
> create table MyTable (intval1 int, intval2 int)
> Запросу просто некуда все это писать, не забудь чтобы типы
> совпадали
> Insert into MyTable (IDn, f, i, o, dr, v, m, s, f)
> Ну и табллицу ты где создаешь?


Это я не забуду !
Таблицу создаю на С:\

А подключаюсь правильно ?


 
Сергей М. ©   (2009-09-28 09:45) [103]


> DataModule2.ADOQuery2.ExecSQL;
> DataModule2.ADOQuery2.SQL.Clear;
> end  ;
> DataModule2.ADOQuery2.Active:=true;
>


Это что за ерунда ?


 
Ирг   (2009-09-28 10:01) [104]

DataModule2.ADOQuery2.ExecSQL; // запускаем запрос
DataModule2.ADOQuery2.SQL.Clear; // чистим SQL запрос для следующего круга

end  ;
DataModule2.ADOQuery2.Active:=true;  //  после прохождения цикла активаровать запрос чтоб DBGrid1 вывел на экран


 
Ирг   (2009-09-28 10:18) [105]

DataModule2.ADOQuery2.SQL.Add("Insert into MyTable (IDn, f, i, o, dr, v, m, s, f) SELECT * from ((SELECT IDn, f, i, o, dr FROM Atab IN "+dir +" "dBASE IV;") ");
DataModule2.ADOQuery2.SQL.Add("INNER JOIN (SELECT IDn, v, m, s, f FROM Btab IN  "+dir +" "dBASE IV;") ON Atab.IDn = Btab.IDn) ");

Запрос по моему у меня страдает ?


 
Сергей М. ©   (2009-09-28 10:35) [106]


> после прохождения цикла активаровать запрос чтоб DBGrid1
> вывел на экран


Чего вывел-то ?
Запроса-то никакого нет - ты ж только что убил его текст строкой DataModule2.ADOQuery2.SQL.Clear)


 
Ирг   (2009-09-28 10:41) [107]

Вот блин !!!

так

var
dir:string;
i:integer;
begin
i:=1;
DataModule2.ADOQuery2.ConnectionString:="Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Initial Catalog=C:\";
DBGrid1.Options:= DBGrid1.Options - [dgTitles];
DataModule2.ADOQuery2.SQL.Add("create table MyTable (intval1 int, intval2 int)");
DataModule2.ADOQuery2.Close;
DataModule2.ADOQuery2.SQL.Clear;
while i<12 do
begin
DataModule2.ADOQuery2.SQL.Clear;
dir := "С:\"+IntTostr(i);
DataModule2.ADOQuery2.SQL.Add("Insert into MyTable (IDn, f, i, o, dr, v, m, s, f) SELECT * from ((SELECT IDn, f, i, o, dr FROM Atab IN "+dir +" "dBASE IV;") ");
DataModule2.ADOQuery2.SQL.Add("INNER JOIN (SELECT IDn, v, m, s, f FROM Btab IN  "+dir +" "dBASE IV;") ON Atab.IDn = Btab.IDn) ");
inc(i);
DataModule2.ADOQuery2.ExecSQL;
end  ;
DataModule2.ADOQuery2.Active:=true;


 
Сергей М. ©   (2009-09-28 10:43) [108]

И что изменилось ?
Как была ерунда, так и осталась)


 
Inovet ©   (2009-09-28 11:24) [109]

> [107] Ирг   (28.09.09 10:41)

SELECT * FROM MyTable


 
Thrashead   (2009-09-28 11:50) [110]

var
dir: String;
i: Integer;
begin
DataModule2.ADOQuery2.ConnectionString:="Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE;Initial Catalog=C:\";
DBGrid1.Options:=DBGrid1.Options-[dgTitles];
DataModule2.ADOQuery2.SQL.Add("CREATE TABLE MyTable (IntVal1 INT, IntVal2 Int)");
DataModule2.ADOQuery2.ExecSQL;
DataModule2.ADOQuery2.Close;
for i:=1 to 12 do
 begin
  dir := "С:\"+IntToStr(i);
  DataModule2.ADOQuery2.SQL.Clear;
  DataModule2.ADOQuery2.SQL.Add("INSERT INTO MyTable (IDn, f, i, o, dr, v, m, s, f) SELECT A.IDn, A.f, A.i, A.o, A.dr, B.v, B.m, B.s, B.f FROM Atab A IN ""+dir +"" "dBASE IV;", Btab B IN ""+dir +"" "dBASE IV;" WHERE A.IDn=B.IDn");
  DataModule2.ADOQuery2.ExecSQL;
 end;
DataModule2.ADOQuery2.Close;
DataModule2.ADOQuery2.SQL.Clear;


 
Ирг   (2009-09-28 11:51) [111]


> И что изменилось ?
> Как была ерунда, так и осталась)


объясни пожалуйста где ерунда почему ерунда как сделать не ерунду  


> SELECT * FROM MyTable


это же просто запрос а мне нужно сохранить эту выборку для дальнейшей эксплуатации


 
MsGuns ©   (2009-09-28 11:53) [112]

>Вот блин !!!

Это не блин, а целая пекарня однако !

>DataModule2.ADOQuery2.SQL.Add("create table MyTable (intval1 int, intval2 int)");
>DataModule2.ADOQuery2.Close;
>DataModule2.ADOQuery2.SQL.Clear;

 1-й строкой в квери заносится запрос, 2-й НЕОТКРЫТЫЙ запрос закрывается
 3-й запрос чистит все, что было занесено 1-м

Это что за эквилибристика ?

Кроме того, прежде чем создавать таблицу неплохо бы провереть може она существует уже - в этом случае вместо создания нужна просто очистка: Delete from MyTable

После цикла вставок сразу вот это:

DataModule2.ADOQuery2.Active:=true;

При этом текст запрооса должен быть не Insert, а select

Чтобы не путаться лучше  использовать 2 разных квери - один для созданий и вставок (не возвращающий нд), второй - читающий, который и привязывать к сетке


 
Thrashead   (2009-09-28 11:53) [113]

Не знаю, надо ли закрывать (Close) запрос перед его очисткой (Clear)... Кто знает - уточните?


 
Ирг   (2009-09-28 11:54) [114]


> SELECT * FROM MyTable


или имееш ввиду так

Insert into MyTable (IDn, f, i, o, dr, v, m, s, f) SELECT  ((SELECT IDn, f, i, o, dr FROM Atab IN "+dir +" "dBASE IV;") INNER JOIN (SELECT IDn, v, m, s, f FROM Btab IN  "+dir +" "dBASE IV;") ON Atab.IDn = Btab.IDn)

почему запрос может не работать


 
Thrashead   (2009-09-28 11:55) [115]

MsGuns: про два разных запроса
+1


 
Сергей М. ©   (2009-09-28 12:00) [116]


> мне нужно сохранить эту выборку


Ты ее и сохраняешь в SQL-предложении INSERT


> для дальнейшей эксплуатации


"Дальнейшая эксплуатация" - это, надо понимать, просмотр в DBGrid того что получилось в результате выполнения SQL-предложении INSERT ?

Ну так а где ты делаешь выборку из результирующей таблицы MyTable ?
Где выполнение SELECT-предложения ?
Нигде.
Вот она и есть ерунда)


 
MsGuns ©   (2009-09-28 12:02) [117]

Вся фишка в том, что вы пытаетесь объяснить таксисту куда ехать с помощью жестов вместо того, чтобы просто назвать адрес.
Поймите одну простую вещь - если Вы хотите сохранить РЕЗУЛЬТАТ объединения, то его следует поместить в какую-то таблицу. В Вашем примере - это MyTable.
Для перезаписи файлов в эту таблицу Вы должны использовать сначала ПОДГОТОВКУ ее (создание  с предварительным удалением или очисткой: второе - грамотнее).
Затем запросами к КАЖДОМУ файлу ОТДЕЛЬНО переписать их содержимое в MyTable.

Это - ПЕРВАЯ задача

Вторая задача - это ОТОБРАЗИТЬ содержимое MyTable в сетке. Для этого используется ДРУГОЙ запрос. Можно, конечно, для решения обеих задач обойтись одним компонентом Query, но надо правильно работать с ним, подготавливая правильные тексты запросов и в правильной последовательности их выполнять. С этим у Вас проблемы в виду полного непонимания того, что Вы делаете. Поэтому совет воспользоваться для отображения другой компонентой, лучше TADODataSet. Думаю, при такой постановке у Вас будет меньше путаницы


 
Inovet ©   (2009-09-28 12:16) [118]

> [114] Ирг   (28.09.09 11:54)
>
> > SELECT * FROM MyTable
>
> или имееш ввиду так

Нет. Это уже для отображения перед
DataModule2.ADOQuery2.Active:=true;


 
Сергей М. ©   (2009-09-28 16:12) [119]


> не решу  писец полный


Судя по отсутствию автора, полный подкрался незаметно)


 
Ирг   (2009-09-30 06:22) [120]


>
> Судя по отсутствию автора, полный подкрался незаметно)


Да !!!

И ваши советы не помогли не хрена



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

Форум: "Прочее";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.68 MB
Время: 0.009 c
15-1254145596
Дмитрий Белькевич
2009-09-28 17:46
2009.11.29
Вопрос по поап меню


15-1254385969
Franzy
2009-10-01 12:32
2009.11.29
Отключить дебаггер!


15-1254429012
Юрий
2009-10-02 00:30
2009.11.29
С днем рождения ! 2 октября 2009 пятница


2-1255334323
Kolan
2009-10-12 11:58
2009.11.29
SelLength и юникод


4-1223712939
@!!ex
2008-10-11 12:15
2009.11.29
Получение данных с ИК порта.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский