Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.220.136.165] |
|
Страницы: (4) 1 [2] 3 4 все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Ты DRKB почитай сначала (там на русском) и я думаю половина вопросов отпадёт
|
Сообщ.
#17
,
|
|
|
хорошо...
|
Сообщ.
#18
,
|
|
|
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBXpress, FMTBcd, DB, SqlExpr, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Zapros: TButton; Memo1: TMemo; SQLConnection: TSQLConnection; SQLQuery: TSQLQuery; Edit1: TEdit; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Connect(Sender: TObject); procedure Disconect(Sender: TObject); procedure ZaprosClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin SQLConnection.Connected := true; end; procedure TForm1.FormCreate(Sender: TObject); begin memo1.Clear; end; procedure TForm1.Connect(Sender: TObject); begin memo1.Lines.Add('Подключение успешно'); end; procedure TForm1.Disconect(Sender: TObject); begin memo1.Lines.Add('Соединение разорвано'); end; procedure TForm1.ZaprosClick(Sender: TObject); begin sqlquery.SQL.Clear; SQLQuery.SQL.add('SELECT * FROM foto'); SQLQuery.Active := true; sqlquery.open; end; end. Мне кажется что я что то не то делаю.... В DRKB написано: Текст запроса содержится в свойстве property SQL: TStrings; а его простое строковое представление в свойстве property Text: string; Если запрос возвращает набор данных, его выполнение осуществляется свойством Active или методом open. В противном случае используется метод function ExecSQL(ExecDirect: Boolean = False): Integer; override; А вот как возвратить не знаю??? Или я все не так сделал? Добавлено Я код подркдактировал))) |
Сообщ.
#19
,
|
|
|
вот тебе ф-ция которую тебе уже написал ViktorXP
только немного "подругому" написана function tmainF.GetSQLValue(const ASQL: String): Variant; begin result := null; // иницыализируем переменную (на тот случай если резуль запроса вернет пустоту) try SQLQuery.SQL.Text := ASQL; // присваеваем наш sql SQLQuery.open; // открываем if SQLQuery.RecordCount > 0 then Result := SQLQuery.Fields[0].AsVariant; // если число строк больше единицы значит берем значение первой колонки except // если в sql ошибка то тут можно выдать меседж. end; end; GetSQLValue('SELECT id FROM foto'); // вот эта строка возвращает данные |
Сообщ.
#20
,
|
|
|
Я пока вот так сделал
procedure TForm1.ZaprosClick(Sender: TObject); begin sqlquery.SQL.Clear; SQLQuery.SQL.Text := 'SELECT * FROM foto WHERE id=3'; SQLQuery.Active := true; memo1.Lines.Add(SQLQuery.Fields[1].AsVariant); memo1.Lines.Add(intTostr(SQLQuery.RecordCount)); end; А эта функция вытаскивает первую строку?как я понял...а этим параметром выбираем какой столбец.... а как выбирать строку если их несколько? допустим 5 ? |
Сообщ.
#21
,
|
|
|
почитай о SQLQuery.MoveBy и SQLQuery.RecNo
|
Сообщ.
#22
,
|
|
|
Что по ним вообще нечего найти не смог
не в инете не в справке....для чего они? Добавлено SQLQuery.MoveBy это какоето перемещение по курсору...а с какими параметрами надо? |
Сообщ.
#23
,
|
|
|
Цитата magsim @ SQLQuery.MoveBy это какоето перемещение по курсору...а с какими параметрами надо? А почему у меня есть ?? Цитата Description Moves to another record relative to the active record in the dataset. Call MoveBy to move the active record by the number of records specified by Distance. A positive value for Distance indicates forward progress through the dataset, while a negative value indicates backward progress. For example, the following statement moves backward through the dataset by 10 records: MoveBy(-10); DataSet1.MoveBy(-10); MoveBy posts any changes to the active record and Sets the Bof and Eof properties to false. If Distance is positive, repeatedly fetches Distance subsequent records (if possible), and makes the last record fetched active. If an attempt is made to move past the end of the file, MoveBy sets Eof to true. If Distance is negative, repeatedly fetches the appropriate number of previous records (if possible), and makes the last record fetched active. If an attempt is made to move past the start of the file, MoveBy sets Bof to true. If the dataset is unidirectional, the dataset raises an DB.EDatabaseError exception when MoveBy tries to fetch a prior record. Broadcasts information about the record change so that data-aware controls and linked datasets can update. Returns the number of records moved. In most cases, Result is the absolute value of Distance, but if MoveBy encounters the beginning-of-file or end-of-file before moving Distance records, Result will be less than the absolute value of Distance. MoveBy lets you specify how many rows forward or back to move the cursor in a dataset. Movement is relative to the current record at the time that MoveBy is called. MoveBy also sets the BOF and EOF properties for the dataset as appropriate. This function takes an integer parameter, the number of records to move. Positive integers indicate a forward move and negative integers indicate a backward move. Note:MoveBy raises an exception in unidirectional datasets if you use a negative argument. MoveBy returns the number of rows it moves. If you attempt to move past the beginning or end of the dataset, the number of rows returned by MoveBy differs from the number of rows you requested to move. This is because MoveBy stops when it reaches the first or last record in the dataset. The following code moves two records backward in CustTable: CustTable.MoveBy(-2); CustTable->MoveBy(-2); Note:If your application uses MoveBy in a multi-user database environment, keep in mind that datasets are fluid. A record that was five records back a moment ago may now be four, six, or even an unknown number of records back if several users are simultaneously accessing the database and changing its data. |
Сообщ.
#24
,
|
|
|
Ага вот что у меня получилось...
я так раньше и делал только с минусом.... procedure TForm1.ZaprosClick(Sender: TObject); begin sqlquery.SQL.Clear; SQLQuery.SQL.Text := 'SELECT * FROM foto WHERE id = 10'; SQLQuery.Active := true; SQLQuery.MoveBy(+1); memo1.Lines.Add(SQLQuery.Fields[1].AsVariant); memo1.Lines.Add(intTostr(SQLQuery.RecordCount)); end; А какой функцией можно получить название все полученных столбцов??? сколько всетаки проблем с компонентами по Delphi много(((( вот функции в PHP это подробнее расписаны.... Но будем учится delphi)))) |
Сообщ.
#25
,
|
|
|
Цитата magsim @ сколько всетаки проблем с компонентами по Delphi много(((( вот функции в PHP это подробнее расписаны.... Всё расписано. Искать нужно и книги читать. Цитата magsim @ А какой функцией можно получить название все полученных столбцов??? наверное так вот var i : Integer; begin for i := 0 to SQLQuery1.FieldCount - 1 do Memo1.Lines.Add('Field ' + IntToStr(i) + ' :' + SQLQuery1.Fields[i].Name); |
Сообщ.
#26
,
|
|
|
Ну вы думаете все есть это в книжках??
Вот например в какой книжки написано это (SQLQuery1.Fields[i].Name) ???? Добавлено Ну или вот какой запрос в поисковике надо было сделать? |
Сообщ.
#27
,
|
|
|
Цитата magsim @ Ну вы думаете все есть это в книжках?? ну возможно в книжке и нет (хотя скорее всего есть) но в справке и всяких статьях точно есть. Или ты думаешь я это из пальца высмоктал. |
Сообщ.
#28
,
|
|
|
я думаю вы из личного опыта...
Добавлено Ну просто в справке же не спросишь по русски... - как получить имя столбцов... |
Сообщ.
#29
,
|
|
|
Цитата Объекты класса TField являются свойством объекта TDataSet (напомним, что некоторые свойства объектов сами являются объектами с их собственными наборами свойств, и TField - один из них). Свойство Fields объекта типа TDataSet позволяет обращаться к отдельным полям набора данных. Свойство Fields является массивом или набором объектов TField, динамически создающимся во время выполнения приложения. Элементы массива соответствуют колонкам таблицы. Объект TField не делает никаких предположений относительно типов данных, с которыми он связан. Он имеет несколько свойств, позволяющих установить или вернуть обратно значения поля, например, AsString, AsBoolean, AsFloat, AsInteger. Наиболее часто используются свойства Text (cтрока текста, выводимого в связанный с данным полем интерфейсный элемент) и FieldName (имя поля базы данных). Или скажешь я это только что сам сочинил. |
Сообщ.
#30
,
|
|
|
ну вы же это искали в справке по запросы Field или как то так а потом перевели ...
ну это уже не к теме... будем учиться... |