![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO + Access
Dmitry_177 © (2008-05-04 12:13:00)Как при помощи ADO добавить новую запись в таблицу? Интересен момент с индексом строки.. просмотрев в самом Accesse файл mdb, увидел там что поле "Код", грубо говоря идентификатор строки, ставится последовательно.. Сделав в Delphi следующее:
var
MyRecSet: _Recordset;
MyRecSet.MoveLast;
MyRecSet.AddNew(0, 0);
MyRecSet.Fields.Item[1].Value := 'efcwef1'; // строка
MyRecSet.Fields.Item[2].Value := '20.12.1990'; // дата
MyRecSet.Update(0, 0);
строка Код не забивается автоматически по порядку.. вот кто как с этим боролся? И еще.. Правильно ли что я переношу курсов в конец функцией MoveLast перед записью? И правильно что в функциях AddNew и Update в их параметрах я задал нули?
sniknik (2008-05-05 10:36:00) [21]> А что можно сделать, что sql запрос длиннее WideString?
намного раньше упрешься в ограничение провайдера на длину запроса...
что можно сделать? уйти например с работы где платят за количество набитого кода, туда где платят за результат... и писать короче.
> длиннее гигабайта?
а не 2х? вайдстринг 2 гигабайта.
что кстати является и ограничением на обьем базы аксесса... действительно, нифига себе у вас запросы. ;)
Anatoly Podgoretsky (2008-05-05 10:30:00) [22]
> А что можно сделать, что sql запрос длиннее WideString?
Нельзя, для пользователя отведено только 2 гб виртуальное памяти, да и Дельфи тебе не позволит обойти это ограничение, размер выделяемой памяти как известно задается через Integer, а как известно MaxInt тоже равно 2 гб, так что и ключ /3gb не поможет.
А реально даже разрешеный размер не удастся выделить, он хоть и 2 гб, но на все, все, а не все+все+все
Palladin (2008-05-05 09:31:00) [23]длиннее гигабайта?
"ффига'се у вас запросы, сказала база данных и повисла" (С)
Dmitry_177 (2008-05-05 09:29:00) [24]
> Ужасть, пора хоть что-то по основам прочитать...
>
> DBCommand.CommandText := 'sql запрос stroka1' +
> 'stroka 2' +
> ....
> 'stroka 125mil'enow 21';
Я так и думал.. просто думал может можно как-то еще ))
А что можно сделать, что sql запрос длиннее WideString?
Плохиш (2008-05-04 21:32:00) [25]
> Dmitry_177 (04.05.08 18:00) [2]
> Подскажите еще вот в чем, делаю sql команды.. так вот, текст
> sql запроса слишком длинный, и если сделать так:
>
> DBCommand.CommandText := 'sql запрос';
> DBCommand.Execute(RecsAffected, NULL, 0);
> RecsAffected := NULL;
>
> то программа не компилируется, т.к. DBCommand.CommandText
> имеет тип WideString, а строка sql запроса длиннее.. что
> можно сделать? Подскажите..
Ужасть, пора хоть что-то по основам прочитать...
DBCommand.CommandText := 'sql запрос stroka1' +
'stroka 2' +
....
'stroka 125mil'enow 21';
Anatoly Podgoretsky (2008-05-04 18:31:00) [26]> Dmitry_177 (04.05.2008 18:00:02) [2]
Теперь тоже самое по русски и с примерами неверного кода.
Dmitry_177 (2008-05-04 18:00:00) [27]Подскажите еще вот в чем, делаю sql команды.. так вот, текст sql запроса слишком длинный, и если сделать так:
DBCommand.CommandText := 'sql запрос';
DBCommand.Execute(RecsAffected, NULL, 0);
RecsAffected := NULL;
то программа не компилируется, т.к. DBCommand.CommandText имеет тип WideString, а строка sql запроса длиннее.. что можно сделать? Подскажите..
И еще вопросик про sql запросы в delphi.. в одну строку если их писать, то потом не очень удобно читать его.. а если сделать перенос строк, то delphi не распознает следующую строку как продолжение текущей строки запроса.. что можно тоже сделать?
palva (2008-05-04 14:30:00) [28]> строка Код не забивается автоматически по порядку.. вот кто как с этим боролся?
С этим борются те, кто думает, что строки таблицы хранятся в определенном порядке.
> Правильно ли что я переношу курсов в конец функцией MoveLast перед записью?
Неправильно
> И правильно что в функциях AddNew и Update в их параметрах
> я задал нули?
Ну если с нулями работает, то правильно. Вообще-то я бы попытался ничего не задавать. В конце концов, есть специальное значение Unassigned для этих целей.