{ **** UBPFD *********** by delphibase.endimus.com ****
>> Очень быстрая интеграция RecordSet-а в глобальную-временную
или постоянную таблицу для MSSQL2000

Практически любой формализм в подходах при разработке приложений для БД,
требует унификации операций записи/модификации информации.
Наиболее популярное решение в этом вопросе - использование ХП для
выполнения задач бизнес-логики. Однако зачастую, простая передача
параметров бывает не эффективна. Для повышения производительности,
рекомендуются помещать блок данных во временную таблицу, а затем,
передавать название временной таблицы бизнес-процедуре в качестве
параметра. Таким образом можно многократно ускорить
выполнение логических транзакций.

Зависимости: ADODB, ADOInt, ComObj, Variants
Автор: Delirium, Master_BRAIN@beep.ru, ICQ:118395746, Москва
Copyright: Delirium (Master BRAIN)
Дата: 15 февраля 2003 г.
***************************************************** }
Читать полностью…

procedure CreateDatabase(WindowsSecurity: Boolean; Username, Password: String);
var
ConnectionString: String;
CommandText: String;
begin
if WindowsSecurity then
ConnectionString := ‘Provider=SQLOLEDB.1;’ +
‘Integrated Security=SSPI;’ +
‘Persist Security Info=False;’ +
‘Initial Catalog=master’
else
ConnectionString := ‘Provider=SQLOLEDB.1;’ +
‘Password=’ + Password + ‘;’ +
‘Persist Security Info=True;’ +
‘User ID=’ + Username + ‘;’ +
‘Initial Catalog=master’;

try

try
ADOConnection.ConnectionString := ConnectionString;
ADOConnection.LoginPrompt := False;
ADOConnection.Connected := True;

CommandText := ‘CREATE DATABASE test ON ‘ +
‘( NAME = test_dat, ‘ +
‘FILENAME = ”c:\program files\microsoft sql server\mssql\data\test.mdf”, ‘ +
‘SIZE = 4, ‘ +
‘MAXSIZE = 10, ‘ +
‘FILEGROWTH = 1 )’;

ADOCommand.CommandText := CommandText;
ADOCommand.Connection := ADOConnection;
ADOCommand.Execute;
MessageDlg(’Database succesfully created.’, mtInformation, [mbOK], 0);

except
on E: Exception do MessageDlg(E.Message, mtWarning, [mbOK], 0);
end;

finally
ADOConnection.Connected := False;
ADOCommand.Connection := nil;
end;

end;

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Идея стандартизации элементов клиента базы данных.

Компонент доступа к данным,потомок TADOStoredProc.
Предназначен для написания клиента для MS SQL Server 2000 (можно использовать и
для более ранних версий, но придется поработать над шаблоном хранимой
процедуры).
Позволяет управлять операциями добавления, редактирования и
удаления (и некоторыми другими)на клиенте со стороны сервера однообразно для
всех данных. Тем самым достигается некоторая стандартизация клиента и при
изменении серверной части не придется изменять клиента(конечно же в разумных
пределах).
Для большей красоты не помешает создать некоторые другие прибамбасы, например,
форму, исходную для всех форм проекта.
Но это уже не относится к данному разделу.

Зависимости: Windows, Messages, SysUtils, Classes, DB, ADODB
Автор: Пенов Сергей, spenov@narod.ru, ICQ:122597033, Москва
Copyright: Пенов Сергей
Дата: 07 мая 2002 г.
***************************************************** }
Читать полностью…

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Модуль, содержащий несколько удобств для работы с MSSQL посредством ADO

Зависимости: Windows, Classes, SysUtils, ADODB, ADOInt, ActiveX, Controls, Variants, ComObj
Автор: Delirium, Master_BRAIN@beep.ru, ICQ:118395746, Москва
Copyright: Delirium
Дата: 30 апреля 2002 г.
***************************************************** }
Читать полностью…

{
Wenn man mit verschiedensprachigen (MS-)SQL-Servern arbeitet,
hat man ab und an das Problem, Datumswerte in ein fur den
jeweiligen Server verstandliches Format umzuwandeln.
}

{
If you work with different (MS-)SQL-Server, you have sometimes the
problem what the date value is in the correct format.
}

function TForm1.GetSQLDateTimeFormat(UDL: string): string;
begin
Screen.Cursor := crSQLWait;
if ADOConnection1.Connected then ADOConnection1.Close;
ADOConnection1.ConnectionString := ‘FILE NAME=’ + UDL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(’sp_helplanguage @@LANGUAGE’);
Application.ProcessMessages;
try
try
ADOQuery1.Open;
except
on E: Exception do MessageBox(Handle,
PChar(’Die Abfrage konnte nicht geoffnet werden:’ + #13#10+#13#10+E.Message),
PChar(’Fehler!’), 16);
end;
if (ADOQuery1.Active) and (ADOQuery1.RecordCount > 0) then
Result := ADOQuery1.FieldByName(’dateformat’).AsString;
finally
Screen.Cursor := crDefault;
end;
end;

function DateTimeToSQLDateTimeString(Data: TDateTime; Format: string;
OnlyDate: Boolean = True): string;
var
y, m, d, h, mm, s, ms: Word;
begin
DecodeDate(Data, y, m, d);
DecodeTime(Data, h, mm, s, ms);
if Format = ‘dmy’ then
Result := IntToStr(d) + ‘-’ + IntToStr(m) + ‘-’ + IntToStr(y)
else if Format = ‘ymd’ then
Result := IntToStr(y) + ‘-’ + IntToStr(m) + ‘-’ + IntToStr(d)
else if Format = ‘ydm’ then
Result := IntToStr(y) + ‘-’ + IntToStr(d) + ‘-’ + IntToStr(m)
else if Format = ‘myd’ then
Result := IntToStr(m) + ‘-’ + IntToStr(y) + ‘-’ + IntToStr(d)
else if Format = ‘dym’ then
Result := IntToStr(d) + ‘-’ + IntToStr(y) + ‘-’ + IntToStr(m)
else
Result := IntToStr(m) + ‘-’ + IntToStr(d) + ‘-’ + IntToStr(y); //mdy: ; //US
if not OnlyDate then
Result := Result + ‘ ‘ + IntToStr(h) + ‘:’ + IntToStr(mm) + ‘:’ + IntToStr(s);
end;

//Example:
//Beispiel:

procedure ConvertSQLDateTime;
begin
ShowMessage(DateTimeToSQLDateTimeString(now, GetSQLLanguage(’C:\DBEngl.udl’)));
end;