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

Вниз

Работа ч/з ADO 2   Найти похожие ветки 

 
snake7   (2004-02-06 16:33) [0]

Делаю такой запрос
бд октрыта в режиме Mode=Read;

ADODataSet1.CommandText:="SELECT "" AS N,* FROM tabl1";
ADODataSet1.Open;
при попытке редактирования:
ADODataSet1.Edit;
ADODataSet1.Fields[0].AsString:="1";
ADODataSet1.Post;
выдает ошибку, как это обойти чтобы поменять занчения первого столбца??????


 
MV   (2004-02-06 16:35) [1]

Сервак какой?

---------
Может, вообще TADOQuery / TADOCommand использовать?


 
snake7   (2004-02-06 16:37) [2]

provider=Microsoft.Jet.OLEDB.4.0


 
snake7   (2004-02-06 16:40) [3]

Если поможет ошибка такая "Field N cannot be modified"


 
MV   (2004-02-06 16:42) [4]

Потому что поле #0 у тебя - не настоящее.
Сделай "SELECT * FROM tabl1"


 
Dedushka_Mazai ©   (2004-02-06 16:43) [5]

может, бд открыть в режиме write, если конечно таковой существует?


 
Anatoly Podgoretsky ©   (2004-02-06 16:44) [6]

Значение первого столба константа, кроме того его физически не существует, нечего менять.


 
snake7   (2004-02-06 16:44) [7]

блин
в этом и вопрос то мне нужен такой запрос что он выводил все поля
а первый столбик показывал порядковый номер записи!!!!!


 
Anatoly Podgoretsky ©   (2004-02-06 16:46) [8]

Может тебе CLientDataset подойдет


 
MV   (2004-02-06 16:46) [9]

Calculated поле тебя спасет.

Но, IMHO - ваш subj - ненужная блажь.


 
snake7   (2004-02-06 16:49) [10]

2 MV
как оно меня сапасет?


 
VLAD-MAL   (2004-02-06 16:57) [11]

Кидаешь в TADODataSet "SELECT * FROM tabl1",
потом открываешь Field Editor, > Add All Fields > New Field >
Name = "NPP", Type= "String", Field Type = Calculated, Syze = 5,
OK
В OnCalcFields - формируешь значение. Если знаешь как, конечно.


 
snake7   (2004-02-06 16:59) [12]

да все хорошо а как такое сделать когда программа запущена?


 
Плохиш   (2004-02-06 17:03) [13]


> snake7 (06.02.04 16:59) [12]
> да все хорошо а как такое сделать когда программа запущена?

1. Останавливаешь программу
2. Делаешь как сказал VLAD-MAL
3. Компилируешь
4. Запускаешь программу

или думаешь над тем, что сказал АП


 
snake7   (2004-02-06 17:05) [14]


> В OnCalcFields - формируешь значение. Если знаешь как, конечно.

а как формировать????


 
snake7   (2004-02-06 17:06) [15]


> В OnCalcFields - формируешь значение. Если знаешь как, конечно.

а как формировать????


 
VLAD-MAL   (2004-02-06 17:13) [16]

Можно и в Run - time. Но только, когда CreateDataSet выполняется. Так что или переписываешь компонент, или юзаешь TClientDataSet. Там такое (CreateDataSet) доступно.

пример:

cdsTable := TClientDataSet.Create(Self);

try
ADODataSet.Open;

// Копируем структуру данных
cdsTable.FieldDefs.Assign(ADODataSet.FieldDefs);

// Добавляем поле NPP - для обработки cdsTable.FieldDefs.Add("NPP", ftInteger);

cdsTable.CreateDataSet;

Все - и никаких Calculated, если не хочешь!


 
VLAD-MAL   (2004-02-06 17:17) [17]

> В OnCalcFields - формируешь значение. Если знаешь как, конечно.

а как формировать????


procedure TForm1.ADODataSet1CalcFields(DataSet: TDataSet);
begin
DataSet.FieldByName("NPP").AsString := "Я самый крутой!";
end;



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

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

Наверх




Память: 0.5 MB
Время: 0.015 c
3-5939
_юзер_
2004-02-06 16:39
2004.03.03
table xxx is in use


1-6114
roadstar
2004-02-20 18:00
2004.03.03
Про компиляцию...


3-5985
nomad
2004-02-03 13:06
2004.03.03
Oracle 8 и Oracle 9


14-6199
марсианин
2004-02-11 16:47
2004.03.03
Имена каталогов после восстановления


7-6262
Dysprozium
2003-12-14 16:16
2004.03.03
Виртуальные мониторы