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

Вниз

DbiQExecDirect из BDE API (IDAPI) не выполняет SQL-запрос   Найти похожие ветки 

 
Dmitry_177   (2007-03-21 16:45) [0]

DbiQExecDirect из BDE API (IDAPI) не выполняет SQL-запрос.. Запрос правильно построен, т.е. не в этом дело.. Строка сама очень длинная, а в DbiQExecDirect передается PChar-строка, а там на сколько я знаю 255 символов максимум, получается что не полностью вся строка передается в функцию и из за этого она не выполняет его.. Подскажите пожалуйста как с этим бороться?


 
Johnmen ©   (2007-03-21 17:18) [1]

Сделай короткую строку и проверь.
Про pchar читай хелп, а не приводи свои измышления....
Да, и код давай :)


 
Mike Kouzmine ©   (2007-03-21 20:23) [2]

Johnmen ©   (21.03.07 17:18) [1]
Да, и код давай :)
<Цитата>

Ну вот. Опять "код давай".


 
sniknik ©   (2007-03-21 20:36) [3]

> Ну вот. Опять "код давай".
уверяю тебя, ему не для сдачи в школе... ;)

а очень даже наоборот, и если вдруг даст, то у самого спрашивающего появиться шанс сдать задание в школе... есть же разница.


 
Dmitry_177   (2007-03-21 21:13) [4]

разобрался я.. если например добавлять строку, изменять или удалять то ничего считывать по сути ненадо.. а вот если я сделаю запрос SELECT-ом?

szQuery := "SELECT Names FROM Table.DB";

DbiQExecDirect(hDB, qrylangSQL, PChar(szQuery), @hCur);

в переменной hCur будет курсор на данные, но вот как их считывать от туда? Подскажите пожалуйста..


 
clickmaker ©   (2007-03-22 09:31) [5]

DbiReadBlock etc
см. Program Files\Common Files\Borland Shared\BDE\BDE32.HLP


 
Dmitry_177   (2007-03-22 10:24) [6]

clickmaker, смотрел.. описания функций видел, а вот как считывать данные с указателя так и не пойму..((


 
ЮЮ ©   (2007-03-22 10:30) [7]

Пишем маленький exe что ли? :) Почему API, а не BDE-компоненты?


 
ЮЮ ©   (2007-03-22 10:34) [8]

см. unit DBTables;

function TDatabase.Execute(const SQL: string; Params: TParams = nil;
 Cache: Boolean = False; Cursor: phDBICur = nil): Integer;


 
sniknik ©   (2007-03-22 10:35) [9]

ну а зачем тогда за API взялся? если по примеру из хелпа, по готовому, разобраться не можеш. пиши на стандартных компонентах где все API скрыто.

слишком сложное для себя задание взял...


 
Dmitry_177   (2007-03-22 10:37) [10]

ЮЮ, ага, маленький :)

Подскажите пожалуйста как считать данные из курсора..
Этим: DbiGetExactRecordCount(hCur, iRecCount); я как понимаю мы узнаем количество записей в курсоре? Т.е. по тому SQL-запросу, который я чуть выше привел будет количество имен? а вот как их считывать?


 
Dmitry_177   (2007-03-22 10:39) [11]

sniknik, а пример я не видел.. а где он там?


 
sniknik ©   (2007-03-22 10:42) [12]

> а где он там?
по кнопке "Delphi Examples" у практически каждой функции.


 
Johnmen ©   (2007-03-22 10:42) [13]

Курсор сначала надо создать, а уже потом вызывать ф-ию.
По исходникам вполне можно разобраться, как это делает Борланд.


 
Dmitry_177   (2007-03-22 12:42) [14]

В примерах функцией DbiGetRecordCount мы узнаем количество записей.. но как их считывать то???


 
sniknik ©   (2007-03-22 13:11) [15]

> но как их считывать то???
пример по тому что там
-> clickmaker ©   (22.03.07 09:31) [5]

а еще в хелпе каждой функции есть внизу ссылки на связанные/родственные...


 
Dmitry_177   (2007-03-22 13:32) [16]


var
 szQuery: string;
 hCursor: hDBICur;
 iRecCount: Integer;
 pRecBuf: PBYTE;
 Props: CURProps;

...

szQuery := "SELECT Name FROM Table.DB";
if DbiQExecDirect(hDB, qrylangSQL, PChar(szQuery), @hCursor) = DBIERR_NONE then
 begin
   DbiGetExactRecordCount(hCursor, iRecCount);
   DbiGetCursorProps(hCursor, Props);
   GetMem(pRecBuf, Props.iRecBufSize * SizeOf(BYTE));
   DbiReadBlock(hCursor, iRecCount, pRecBuf);

 end;


Вот так? Теперь в pRecBuf хранится указатель на данные я как понимаю, но как их от туда считать???



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

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

Наверх




Память: 0.5 MB
Время: 0.019 c
15-1179157796
matt
2007-05-14 19:49
2007.06.10
Росийская ОС


11-1161750263
Lari
2006-10-25 08:24
2007.06.10
Ошибка чтения файла при использовании PStream


1-1176617592
Major Gray
2007-04-15 10:13
2007.06.10
Нестандартная реакция TPopupMenu.


15-1178962492
TCrash
2007-05-12 13:34
2007.06.10
выбор SQL


15-1179005630
lookin
2007-05-13 01:33
2007.06.10
Терминологический вопрос про массив...