Главная страница
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.03 c
1-1176290081
delphi_
2007-04-11 15:14
2007.06.10
авторизация с TWebBrowser используя логин и пароль


15-1178804743
Manic Mechanic
2007-05-10 17:45
2007.06.10
СТРИМ


15-1179142527
Knight
2007-05-14 15:35
2007.06.10
Прога контроля прокси...


2-1179442488
delphino
2007-05-18 02:54
2007.06.10
Почему пропадают данные из таблицы???


15-1179055784
boriskb
2007-05-13 15:29
2007.06.10
И все таки (старый спор)