Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Удаление всех записей [D7, dBase, FoxPro]


Страницы:   1 2

Patrick ©   (2006-08-31 18:01:00) 

Хочу программно удалить все записи из таблицы Visual FoxPro.
фрагмент таков

a:TADOTable;

a.open;
a.deleterecords;
после чего выдается сообщение
Operation is not allowed in this context.

что это может означать?
заранее благодарен.


Palladin   (2006-09-01 20:14:00) [21]

зато так написать, проще для меня

q.sql.text:=_MyFunctionToLoadSQLTemplateFromFile;
q.Open;
While Not q.Eof Do
Begin
 ...
 q.Next;
End;
q.Close;

это единственные методы (не считая конечно: свойства Fields, фунции FieldByName и TADOBlobStream, очень редко используемый) которыми я пользуюсь при работе с TADOQuery

никогда не ложу TADOQuery на форму, бо не пользуюсь никакими DB контролами
изредка ложу ADOConnection, но в основоном использую TADOQuery.ConnectionString

в данном случае меня интересует есть ли значительное преимущество у _RecordSet перед TADOQuery.Fields


Anatoly Podgoretsky   (2006-09-01 19:58:00) [22]

Различие перед AdoDataset в первую очередь в этом, я не понимаю, разве так написать тяжелее
 AdoDataset.CommandText :=
   'SELECT '+
   '  Fld1, '+
 ...
   '  FldN '+
   'FROM Tbl ';

чем
 AdoQuery.Cleae;
 AdoQuery.Add('SELECT ');
 AdoQuery.Add('  Fld1, ');
 ...
 AdoQuery.Add('  FldN ');
  ...
 AdoQuery.Add('FROM Tbl );


Palladin   (2006-09-01 19:07:00) [23]

:) ну скажем "код такого рода" мне по барабану, я для себя спрашивал...


> например не нужная трата ресурсов

а вот это уже гораздо более серьезный аргумент...


Anatoly Podgoretsky   (2006-09-01 19:02:00) [24]

Palladin ©   (01.09.06 17:26) [9]
Конечно, например не нужная трата ресурсов, используется TStrings, более частые ошибки у начинающих, что не видел такого кода?
Querty.Active := True;
Query.Open;


Palladin   (2006-09-01 17:58:00) [25]

да я тоже в общем то на ADOQuery собаку съел, это раз, два - если бы меня не интересовали причины я бы и не спрашивал, три - никому слепо не верю и тебе не советую, четыре - возможно названные минусы/недостатки будут абсолютно для меня не критичны.


ANB   (2006-09-01 17:44:00) [26]


> Palladin ©   (01.09.06 17:26) [9]

sniknik на ADO собаку съел. Если советует, лучше так и делать.


Palladin   (2006-09-01 17:26:00) [27]


> не используй ADOQuery!

А почему? Есть серьезные минусы/недостатки?


sniknik   (2006-09-01 11:35:00) [28]

> В компоненте ADOTable метода ZAP нету,
ZAP это sql команда вполне определенного движка VFP (у других не встречал, только у фокса)

> а провайдер таков MSDASQL.1 наверное он верный.
у этого провайдера (ODBC) у самого есь возможность подключится к любой базе. т.е. его приведение сдесь ни о чем не говорит.

> ADOTable тебе не поможет (возможно и есть метод, но искать долго). Используй SQL (ADOQuery).
нету и не может быть, в нем только методы доступа/взаимодействия к провайдеру/движку/sql серверу, работу выполняет всегда движок в ADO только посылается ответ от результата.
т.е. для того чтобы узнать что можно использовать, а что нет, надо читать хелп по используемому движку/sql серверу... если там можно, то и в ADO автоматически можно...

p.s. не используй ADOQuery! используй толькородные ADO-шные компаненты - (ADOConnection,ADOCommand,ADODataSet) остальную муть для "затуманивания" мозгов с палитры ADO в корзину!


ANB   (2006-09-01 09:26:00) [29]


> В компоненте ADOTable

ADOTable тебе не поможет (возможно и есть метод, но искать долго). Используй SQL (ADOQuery).


Patrick   (2006-09-01 09:18:00) [30]

В компоненте ADOTable метода ZAP нету,
а провайдер таков MSDASQL.1 наверное он верный.


ANB   (2006-09-01 09:11:00) [31]


> Desdechado ©   (31.08.06 20:15) [4]

в родном фоксе есть zap, а как его в локал SQL обозвали - х.з.


Desdechado   (2006-08-31 20:15:00) [32]

truncate table
хотя, есть ли он в фоксе...


Palladin   (2006-08-31 19:44:00) [33]


> Правда, есть более шустрый способ

ага... drop table/create table :)


Anatoly Podgoretsky   (2006-08-31 19:07:00) [34]

ANB ©   (31.08.06 19:02) [1]
Доступен, если стоит правильный провайдер


ANB   (2006-08-31 19:02:00) [35]


> a.deleterecords;

Это означает, что так делать низзя.
Выполни запрос
'delete from имя_таблицы'
и не парся.
Правда, есть более шустрый способ (zap), но я сильно сомневаюсь, что из ADO он доступен.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо