Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.044 c
1-1176835029
DimKa
2007-04-17 22:37
2007.06.10
Динамическое создание объекта TTcpClient


3-1174387458
YuRock
2007-03-20 13:44
2007.06.10
Составные индексы с "разной" сортировкой


2-1179420759
Romm
2007-05-17 20:52
2007.06.10
Курсор в Memo


2-1179841159
Sonia
2007-05-22 17:39
2007.06.10
Как показать на экран форму вперед главной


2-1179601887
LoRd1
2007-05-19 23:11
2007.06.10
Отключение/включение клавиатуры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский