Поиск:

Ответ в темуСоздание новой темы Создание опроса
> работа с ZeosDbo @MySQL в D7, Совсем не пойму принцип 
:(
    Опции темы
lazutov
Дата 22.6.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 17.4.2008

Репутация: нет
Всего: нет



Собственно вопрос:
Как, используя ZeosDbo
1) коннектиться к базе(MySQL) - получается вроде
2) Выполнить UPDATE/Insert_Into запрос (совсем не получается - ошибка NotWriteable)
3) выполнить SELECT * From table и занести резалт в 2-мерный массив стрингов. (с первой частью все ок, а как просмотреть результат - тут не знаю как )
Заранее спасибо.
PS прошу указать какие использовались компоненты.
PPS базовые операции с Paradox/BDE провожу успешно, язык запросов MySQL знаю(взамод. с web(php) ).
Модератору: тема скорее касается самого принципа работы этих компонентов, а не самой MySQL, поэтому место этой темы именно а этом разделе. 
PM MAIL   Вверх
lazutov
Дата 23.6.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 17.4.2008

Репутация: нет
Всего: нет



Код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ZSqlUpdate, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset,
  ZConnection, StdCtrls, Grids, DBGrids;

type
  TForm1 = class(TForm)
    db: TZConnection;
    sql: TZQuery;
    usql: TZUpdateSQL;
    ds: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
db.Connect; // db.connected в True устанавливается успешно
sql.SQL.Clear;
sql.SQL.Add('SELECT * FROM sf_stat_robot;');
sql.ExecSQL;
end;

end.

ds.dataset - sql
DBGrid1.darasoutce - ds

Это приводит к accessViolation.
Вопрос - в чем я не прав.
PM MAIL   Вверх
LSD
Дата 23.6.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 1
Всего: 538



Цитата(lazutov @  22.6.2008,  20:50 Найти цитируемый пост)
тема скорее касается самого принципа работы этих компонентов, а не самой MySQL, поэтому место этой темы именно а этом разделе

Нет не в этом.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Vas
Дата 23.6.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Код

procedure TForm1.Button1Click(Sender: TObject);
begin
db.Connect; // db.connected в True устанавливается успешно
sql.SQL.Clear;
sql.SQL.Add('SELECT * FROM sf_stat_robot;');
sql.Open;  //ExecSQL для запросов которые не возвращают данных то бишь Insert/updte/delete для select юзай open
end;



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
lazutov
Дата 23.6.2008, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 17.4.2008

Репутация: нет
Всего: нет



Спасибо, помогло.
А как выполнить запрос, если
Код
...
    usql: TZUpdateSQL;
...
usql.ModifySQL.Clear;
usql.ModifySQL.Add('UPDATE sf_stat_robot SET `robot`=''upd!'' WHERE `IDRobot`=''1'';')
// ???? выполнить

PM MAIL   Вверх
Vas
Дата 23.6.2008, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28




Код

usql.SQL.Clear;
usql.SQL.Add('UPDATE sf_stat_robot SET `robot`=''upd!'' WHERE `IDRobot`=''1'';')
usql.ExecSQL;


Это сообщение отредактировал(а) Vas - 23.6.2008, 14:16


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
lazutov
Дата 23.6.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 17.4.2008

Репутация: нет
Всего: нет



usql.ExecSQL; -  Undeclarated Identifer ExecSQL;
Нет, возможно иная процедура.
PM MAIL   Вверх
goa_dreamer
Дата 23.6.2008, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 12.1.2008

Репутация: нет
Всего: 1



Код

SQL.UpdateObject := USQL; //В TZQuery указана связь UpdateObject - USql?

//заполнение значений Sql запросов для удаления, добавления, редактирования записей

With USQL.DeleteSql do
Begin
 Clear;
 Add( '<Здесь добавить DeleteSql>' );
end;

With USQL.InsertSql do
Begin
 ...
end;

With USQL.ModifySql do
Begin
 ...
end;

//USQL - TZUpdateSql  - не имеет ExecSql.

//Можно заполнить эти SQL автоматически - при активном TZQuery, и подключенном к нему TZUpdateSql, двойным щелчком мышки на TZUpdateSql - вызывает редактор Sql.


Это сообщение отредактировал(а) Rodman - 9.1.2009, 19:30
PM MAIL   Вверх
Vas
Дата 24.6.2008, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



Код

  ID:=ZQDrive.FieldByName('Num').AsInteger;
  if Application.MessageBox(PChar(RS_QuestionDelete),'...', mb_YesNo + MB_DEFBUTTON2 + mb_IconQuestion)=idYes then
    begin
      with ZQSave do
        begin
          if Active then Close;
          SQL.Clear;
          SQL.Add('delete from garazh.drivers where NUM=:ID');
          ParamByName('ID').AsInteger:=ID;
          Connection.StartTransaction;
          try
            ExecSQL;
          except
            on E: Exception do
              begin
                Connection.Rollback;
                MyMessageBox(RS_DeleteError+#10#13+E.Message);
              end;
          end;
          Connection.Commit;
          LoadFromDB;
        end; //with
    end; //if                         



--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
Akella
Дата 9.1.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



А вот у TZUpdateSQL нет свойства Connection. Откуда TZUpdateSQL знает, к какому серверу/базе нужно выполнять запросы?

Добавлено через 4 минуты и 50 секунд
В примере не очень понятный порядок подключения. Есть у кого-нибудь больше примеров? Нормальных пример, где видно, что с чем можно связать и как лучше редактировать данные.
Я так понял, что К TZUpdateSQL подключается ZQuery1. И вот какой порядок действий, для чего ZSequence, пока разбираюсь.

Добавлено через 6 минут и 32 секунды
Да, есть статьии небольшие в руне, но они 2000-го года smile 
PM MAIL   Вверх
Akella
Дата 9.1.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Есть вот что
http://zeos.firmos.at/kb.php?mode=article&k=6
но информации, там очень мало
PM MAIL   Вверх
Bose
Дата 9.1.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(Akella @  9.1.2009,  16:51 Найти цитируемый пост)
для чего ZSequence?

Предполагаю, что для секвенций/генераторов. 

PM MAIL WWW Skype   Вверх
Akella
Дата 9.1.2009, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Да, это я понял, забыл написать. smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0571 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.