![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа ч/з ADO 2 [D6, ADO]
snake7 © (2004-02-06 16:33:00)
Делаю такой запрос
бд октрыта в режиме Mode=Read;
ADODataSet1.CommandText:="SELECT "" AS N,* FROM tabl1";
ADODataSet1.Open;
при попытке редактирования:
ADODataSet1.Edit;
ADODataSet1.Fields[0].AsString:="1";
ADODataSet1.Post;
выдает ошибку, как это обойти чтобы поменять занчения первого столбца??????
VLAD-MAL (2004-02-06 17:17:00) [1]
> В OnCalcFields - формируешь значение. Если знаешь как, конечно.
а как формировать????
procedure TForm1.ADODataSet1CalcFields(DataSet: TDataSet);
begin
DataSet.FieldByName("NPP").AsString := "Я самый крутой!";
end;
VLAD-MAL (2004-02-06 17:13:00) [2]
Можно и в 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, если не хочешь!
snake7 (2004-02-06 17:06:00) [3]
> В OnCalcFields - формируешь значение. Если знаешь как, конечно.
а как формировать????
snake7 (2004-02-06 17:05:00) [4]
> В OnCalcFields - формируешь значение. Если знаешь как, конечно.
а как формировать????
Плохиш (2004-02-06 17:03:00) [5]
> snake7 (06.02.04 16:59) [12]
> да все хорошо а как такое сделать когда программа запущена?
1. Останавливаешь программу
2. Делаешь как сказал VLAD-MAL
3. Компилируешь
4. Запускаешь программу
или думаешь над тем, что сказал АП
snake7 (2004-02-06 16:59:00) [6]
да все хорошо а как такое сделать когда программа запущена?
VLAD-MAL (2004-02-06 16:57:00) [7]
Кидаешь в 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:49:00) [8]
2 MV
как оно меня сапасет?
MV (2004-02-06 16:46:00) [9]
Calculated поле тебя спасет.
Но, IMHO - ваш subj - ненужная блажь.
Anatoly Podgoretsky (2004-02-06 16:46:00) [10]
Может тебе CLientDataset подойдет
snake7 (2004-02-06 16:44:00) [11]
блин
в этом и вопрос то мне нужен такой запрос что он выводил все поля
а первый столбик показывал порядковый номер записи!!!!!
Anatoly Podgoretsky (2004-02-06 16:44:00) [12]
Значение первого столба константа, кроме того его физически не существует, нечего менять.
Dedushka_Mazai (2004-02-06 16:43:00) [13]
может, бд открыть в режиме write, если конечно таковой существует?
MV (2004-02-06 16:42:00) [14]
Потому что поле #0 у тебя - не настоящее.
Сделай "SELECT * FROM tabl1"
snake7 (2004-02-06 16:40:00) [15]
Если поможет ошибка такая "Field N cannot be modified"
snake7 (2004-02-06 16:37:00) [16]
provider=Microsoft.Jet.OLEDB.4.0
MV (2004-02-06 16:35:00) [17]
Сервак какой?
---------
Может, вообще TADOQuery / TADOCommand использовать?