Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 11.06.2012, 21:33   #11
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
да то самое. поэтому удалил нафиг эти юниты и поставил ZEOS для MySQL
о чудо тестовое приложение подключилось таки к моей базе

однако ввиду полного незнания SQL , остуствия документации к ZEOS немогу понять как же мне считать данные оттуда.

по моим догадкам нужно юзать компоненту ZQuery но невтыкаю как она работает. с компонтентом мудак (MyDAC) поддержки и примеров больше, вот тока она коммерческая
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 11.06.2012, 21:40   #12
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Я юзаю MyDac вот залил http://zalil.ru/33427182

По ней могу подсказать как работать
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
За это сообщение Yegor нажился спасибкой от:
Старый 11.06.2012, 22:12   #13
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
Я юзаю MyDac вот залил http://zalil.ru/33427182

По ней могу подсказать как работать
эммм. там уже не нада платить?)
//скачал

Добавлено через 20 минут
проверил, мудак тоже успешно подключаетса в БД
теперь осталось научитса считывать поля из БД) с чего начать?
__________________
читернуть бы ништяг

Последний раз редактировалось mira, 11.06.2012 в 22:12. Причина: Добавлено сообщение
mira вне форума   Ответить с цитированием
Старый 11.06.2012, 22:59   #14
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

Цитата:
Сообщение от mira Посмотреть сообщение
эммм. там уже не нада платить?)
//скачал

Добавлено через 20 минут
проверил, мудак тоже успешно подключаетса в БД
теперь осталось научитса считывать поля из БД) с чего начать?
TMyConnection, TMyQuery, пишешь в TMyConnection хост, пароль, базу, юзера, в TMyQuery.SQL - в него пишешь запрос, TMyQuery.Execute - выполняет запрос, читаешь по TMyQuery.Fields или TMyQuery.FieldByName и соответственно у полей методы .AsInteger, .AsString. собсна всё
__________________
Начало.
supernewbie вне форума   Ответить с цитированием
Старый 11.06.2012, 23:27   #15
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Вот общий вариант чтения данных из БД с перебором полученных значений:

PHP код:
      MyQuery1.SQL.Text:= 'SELECT * FROM skills WHERE skillId = 100500';
      
MyQuery1.Open;
      
MyQuery1.First;
      for 
i:= 0 to MyQuery1.RecordCount do
      
begin
        skillLevel
:= MyQuery1.FieldByName('level').AsInteger;
        ...
        
MyQuery1.Next;//важно для перехода к следующей записи
      
end;
      
MyQuery1.Close
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)

Последний раз редактировалось Yegor, 11.06.2012 в 23:29.
Yegor вне форума   Ответить с цитированием
Старый 11.06.2012, 23:29   #16
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

зеос.
на формочке\тдатамодуле с именем dmdata лежит

delphi Код:
object SqlConnection: TZConnection   Protocol = 'mysql-4.1'   HostName = '192.168.0.1'   Port = 3306   Database = 'qqqq'   User = 'wwww'   Password = 'eeeee'   Catalog = 'mysql'   AutoCommit = False end

есть класс прослойка.позволяющий юзать квери с любой нити без последствий.
delphi Код:
TZQueryWrapper = class   private     Z : TZQuery;     function getsql: tstrings;     procedure setsql(const Value: tstrings);   protected     Procedure SynchCreate;     Procedure SynchDestroy;     procedure SynchOpen;     procedure SynchClose;     procedure SynchExecSql;     procedure SynchNext;   public     procedure Open;     procedure Close;     procedure ExecSql;     procedure next;     Function RowsAffected : integer;     Function Eof : boolean;     function GetBlobFieldData(FieldNo: Integer; var Buffer: TBlobByteData): Integer;     Function FieldByName(const name : string):Tfield;     property sql : tstrings read getsql write setsql;     Constructor Create;     Destructor destroy; override;   end; { TZQueryWrapper } procedure TZQueryWrapper.Close; begin   if GetCurrentThreadId <> MainThreadID then     TThread.Synchronize(nil, SynchClose)   else     SynchClose; end; constructor TZQueryWrapper.Create; begin   z := nil;   if GetCurrentThreadId <> MainThreadID then     TThread.Synchronize(nil, SynchCreate)   else     SynchCreate; end; destructor TZQueryWrapper.destroy; begin   if GetCurrentThreadId <> MainThreadID then     TThread.Synchronize(nil, SynchDestroy)   else     SynchDestroy;   inherited; end; function TZQueryWrapper.Eof: boolean; begin   result := z.Eof; end; procedure TZQueryWrapper.ExecSql; begin   if GetCurrentThreadId <> MainThreadID then     TThread.Synchronize(nil, SynchExecSql)   else     SynchExecSql; end; function TZQueryWrapper.FieldByName(const name: string): Tfield; begin   Result := z.FieldByName(name); end; function TZQueryWrapper.GetBlobFieldData(FieldNo: Integer;   var Buffer: TBlobByteData): Integer; begin   result := z.GetBlobFieldData(FieldNo,Buffer); end; function TZQueryWrapper.getsql: tstrings; begin   result := Z.SQL; end; procedure TZQueryWrapper.next; begin   if GetCurrentThreadId <> MainThreadID then     TThread.Synchronize(nil, SynchNext)   else     SynchNext;   end; procedure TZQueryWrapper.Open; begin   if GetCurrentThreadId <> MainThreadID then     TThread.Synchronize(nil, SynchOpen)   else     SynchOpen; end; function TZQueryWrapper.RowsAffected: integer; begin   Result := z.RowsAffected; end; procedure TZQueryWrapper.setsql(const Value: tstrings); begin   Z.SQL := Value; end; procedure TZQueryWrapper.SynchClose; begin   z.Close; end; procedure TZQueryWrapper.SynchCreate; begin   if not dmDB.SqlConnection.Connected then     dmDB.SqlConnection.Connect;   Z := TZQuery.Create(nil);   z.Connection := dmDB.SqlConnection; end; procedure TZQueryWrapper.SynchDestroy; begin   z.free; end; procedure TZQueryWrapper.SynchExecSql; begin   z.ExecSQL; end; procedure TZQueryWrapper.SynchNext; begin   z.Next; end; procedure TZQueryWrapper.SynchOpen; begin   z.Open; end;

есть глобально обьявленная функция.
delphi Код:
Function NewUpdateQuery(sQuesry : string):TZQueryWrapper; begin   result := TZQueryWrapper.Create;   result.sql.Text := sQuesry; end;

ну. и в итоге, юзаем как то так.
delphi Код:
with NewUpdateQuery(format('select id from build_parsers where buildnum = %d',[NewBuild])) do       begin         open;         while not eof do         begin           DeleteFile(pchar(format('%s\%d.bin',[OutputDir,FieldByName('id').AsInteger])));           next;         end;         Close;         Destroy;       end;
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 12.06.2012, 02:13   #17
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

круто. спасиба пасаны)
Миниатюры
Нажмите на изображение для увеличения
Название: clip.jpg
Просмотров: 26
Размер:	23.7 Кб
ID:	2687  
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Старый 12.06.2012, 15:21   #18
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

чтото немогу найти значения битовых флагов для слотов, где там в сервере

опытным путем установил тока
Код:
 BODY_LHAND = 128;  //weapon
 BODY_RHAND = 256;  // dual weapon or shield
Добавлено через 13 минут
типы вепонов в цифрах тоже ненашол. например какая цифра соответствует dualsword

Добавлено через 56 минут
части тела пробил через клиент.
осталость гдето взять ид вепонов
__________________
читернуть бы ништяг

Последний раз редактировалось mira, 12.06.2012 в 15:21. Причина: Добавлено сообщение
mira вне форума   Ответить с цитированием
Старый 12.06.2012, 19:14   #19
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

mira, L2Item
Цитата:
public static final int TYPE1_WEAPON_RING_EARRING_NECKLACE = 0;
public static final int TYPE1_SHIELD_ARMOR = 1;
public static final int TYPE1_OTHER = 2;
public static final int TYPE1_ITEM_QUESTITEM_ADENA = 4;

public static final byte TYPE2_WEAPON = 0;
public static final byte TYPE2_SHIELD_ARMOR = 1;
public static final byte TYPE2_ACCESSORY = 2;
public static final byte TYPE2_QUEST = 3;
public static final byte TYPE2_MONEY = 4;
public static final byte TYPE2_OTHER = 5;
public static final byte TYPE2_PET_WOLF = 6;
public static final byte TYPE2_PET_HATCHLING = 7;
public static final byte TYPE2_PET_STRIDER = 8;
public static final byte TYPE2_NODROP = 9;
public static final byte TYPE2_PET_GWOLF = 10;
public static final byte TYPE2_PENDANT = 11;
public static final byte TYPE2_PET_BABY = 12;

public static final int SLOT_NONE = 0x00000;
public static final int SLOT_UNDERWEAR = 0x00001;
public static final int SLOT_CLOAK = 0x0003; //TODO:????

public static final int SLOT_R_EAR = 0x00002;
public static final int SLOT_L_EAR = 0x00004;

public static final int SLOT_NECK = 0x00008;

public static final int SLOT_R_FINGER = 0x00010;
public static final int SLOT_L_FINGER = 0x00020;

public static final int SLOT_HEAD = 0x00040;
public static final int SLOT_R_HAND = 0x00080;
public static final int SLOT_L_HAND = 0x00100;
public static final int SLOT_GLOVES = 0x00200;
public static final int SLOT_CHEST = 0x00400;
public static final int SLOT_LEGS = 0x00800;
public static final int SLOT_FEET = 0x01000;
public static final int SLOT_BACK = 0x02000;
public static final int SLOT_LR_HAND = 0x04000;
public static final int SLOT_FULL_ARMOR = 0x08000;
public static final int SLOT_HAIR = 0x10000;
public static final int SLOT_FORMAL_WEAR = 0x20000;
public static final int SLOT_DHAIR = 0x40000;
public static final int SLOT_HAIRALL = 0x80000;
public static final int SLOT_R_BRACELET = 0x100000;
public static final int SLOT_L_BRACELET = 0x200000;
public static final int SLOT_DECO = 0x400000;
public static final int SLOT_SIGIL = 0x000000; // TODO: fix
public static final int SLOT_BELT = 0x10000000;
public static final int SLOT_WOLF = -100;
public static final int SLOT_HATCHLING = -101;
public static final int SLOT_STRIDER = -102;
public static final int SLOT_BABYPET = -103;
public static final int SLOT_GWOLF = -104;
public static final int SLOT_PENDANT = -105;
Добавлено через 3 минуты
Цитата:
Сообщение от mira Посмотреть сообщение
Добавлено через 13 минут
типы вепонов в цифрах тоже ненашол. например какая цифра соответствует dualsword
про какие именно цифры идёт речь?
__________________
Начало.

Последний раз редактировалось supernewbie, 12.06.2012 в 19:14. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием
Старый 12.06.2012, 19:52   #20
Местный
 
Регистрация: 10.08.2010
Сообщений: 634
Сказал Спасибо: 22
Имеет 95 спасибок в 70 сообщенях
mira пока неопределено
По умолчанию

Код:
  {  body equip bitmask }
 BODY_LHAND = 128;  //weapon
 BODY_RHAND = 256;  // dual weapon or shield
 BODY_FINGERS= 48;
 BODY_EARS   = 6;
 BODY_NECK   = 8;
 BODY_BELT   = $10000000;
 BODY_BACK   = $2000; // cloack
 BODY_UNDERWEAR = 1;
 BODY_HEAD   = 64;
 BODY_UPPER  = 1024;
 BODY_LOWER  = 2048;
 BODY_GLOVE  = 512;
 BODY_FEET   = 4096;
 BODY_HAIR   = 65536;
 BODY_FACE   = $40000;
 BODY_HAIRALL= $80000;
с слотами так сделал, в принцыпе как у тебя. чето может нехватает но петомцы пока пофиг)
Код:
 {weapon flags} 
weapon_Dual_Sword=1;
weapon_Sword=2;
weapon_Big_Sword=4;
weapon_Blunt=8;
weapon_Big_Blunt=16;
weapon_Dagger=32;
weapon_Dual_Fist=64;
weapon_Bow=128;
weapon_Dual_Dagger=256;
weapon_Pole=512;
weapon_Shield=1024;
weapon_Magic=2048;
weapon_Light=4096;
weapon_Heavy=8192;
weapon_Rapier=16384;
weapon_Ancient=32768;
weapon_Crossbow=65536;
weapon_Sigil=131072;
weapon_Fist=262144;
weapon_Rod=524288;
weapon_Etc=1048576;
випоны сам задал, на пакетном уровне типа оружия не передаетса всеравно такчто пофиг
__________________
читернуть бы ништяг
mira вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 06:54.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!