Два программиста:
- Ко мне вчера чувак приходил, сервак сломал.
- Он что хакер?
- Нет, мудак!

function CheckMSSQLServer(fServerName, fUserName, fPsw : string) : Bool;
var
wDb : TDatabase;
begin
// Check if MS SQL Server is reachable
// Важно! BDE Должна быть установлена
Result := False;
wDb := TDatabase.Create(nil);

with wDb do
begin
DatabaseName := ‘wDbDatabaseName’; // arbitrary name, must be unique
// in current Session
Params.Values[’SERVER Name’] := fServerName;
Params.Values[’USER Name’] := fUserName;
Params.Values[’PASSWORD’] := fPsw;
LoginPrompt := False;
end;

try
wDb.DriverName := ‘MSSQL’;
try
wDb.Connected := True;
wDb.Connected := False;
except
ShowMessage(’Server is not reachable’);
end;
Result := True;
finally
wDb.Free;
end;
end;

Автор: admin | в 4:16 | Рубрики: Базы данных

Как мне передать значение переменной в SQL-запросе? К примеру, в обработчике onClick клавиши вывести все записи с величиной поля большей, чем задал пользователь. Можно ли в Delphi создать что-либо подобное механизму запросов, реализованному в Paradox for Windows?

Решение этой задачи в Delphi подобно созданию и выполнению строки запроса SQL в Paradox.

Pdoxwin код:

method pushButton(var eventInfo Event)
var
s string
q query
d database
endvar

d.open( “MYALIAS” )
s = “select * from mytable where somefield=\”" + entryField.value + “\”"
q.readFromString( s )
q.executeSQL( d )

endmethod

Delphi код:

procedure TForm1.Button1Click(Sender: TObject);
begin
MyQuery.Active := false;
MyQuery.SQL.clear;
MyQuery.SQL.add(’select * from mytable where somefield=”‘ +
EntryField.Text + ‘”‘);
MyQuery.Active := true;
end;

Автор: admin | 18.12.2007 в 11:23 | Рубрики: Базы данных

По умолчанию, оператор UPDATE в MS SQL Server пытается поставить эксклюзивную табличную блокировку. Вы можете обойти это, используя ключевое слово FROM в сочетании с опцией PAGLOCK для использования MS SQL Server страничных блокировок вместо эксклюзивной табличной блокировки:

UPDATE orders SET customer_id=NULL FROM orders(PAGLOCK) WHERE customer_id=32;
Блокиpовка на всю таблицу пpи UPDATE ставится только в том случае, если по пpедикату нет индекса. Так, можно пpосто пpоиндексиpовать таблицу orders по полю customer_id, и не забывать делать UPDATE STATISTIC, хотя будет работать и с PAGLOCK. Просто не факт, что UPDATE всегда делает табличную блокировку.

Автор: admin | в 11:23 | Рубрики: Базы данных

SUBSTRING(’Delphi World - это супер!!!’ from 1 to 6)

SQL-функция SUBSTRING может использоваться в приложениях Delphi, работающих с запросами к локальной SQL, но она не поддерживается при работе с таблицами InterBase (IB) и Local InterBase Server (LIBS). Ниже приведен синтаксис функции SUBSTRING, примеры ее использования в запросах к local SQL, и альтернатива для возвращения тех же результатов для таблиц IB/LIBS.

Синтаксис функции SUBSTRING:

SUBSTRING( FROM [, FOR ])
Где:
- имя колонки таблицы, из которой должна быть получена подстрока (substring).

место в значении колонки, начиная с которого извлекается подстрока.

длина извлекаемой подстроки.

Функция SUBSTRING в примере ниже возвратит второй, третий и четвертый символы из колонки с именем COMPANY:
Читать полностью…