Показано с 11 по 12 из 12
Тема: DELPHI & SQL
-
29.03.2010, 14:37 #11
- Регистрация
- 09.02.2010
- Сообщений
- 12
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Ребят я уже нашел решение:
ввод производится из *.тхт файла.
procedure TForm2.BitBtn5Click(Sender: TObject);
var
fname:string; //Имя выбранного файла
f:TextFile; //Файловая переменная
i,j,k:integer;
s,ss:string;
row:array [1..6] of string;
s1,s2:TDateTime;
s3:integer;
s4,s5:string;
s6:real;
begin
if OpenDialog1.Execute then
begin
Memo1.Clear;
fname := OpenDialog1.FileName;
//Считываем информацию из текстового файла
AssignFile(f, fname); //Связываем файл с файловой переменной
Reset(f); //Открываем файл
while not eof(f) do //Будем считывать данные, начиная с 2ой строки,
//пока не будет достигнут конец файла
begin
ReadLn(f, s); //Считываем очередную строку
Memo1.Lines.Add(s); //Приписываем строку к содержимому невидимого компонента
//Memo. Таким образом, в Memo будет записан весь нужный
//нам текст
end;
CloseFile(f); //Закрываем файл
for i:=1 to Memo1.Lines.Count do
begin
s:=Memo1.Lines.Strings[i-1];
if length(s)=0 then continue;
if ((s[1]=' ') or (s[1]='-')) then continue;
k:=1;
for j:=1 to 6 do
begin
row[j]:='';
while s[k]=' ' do
begin
k:=k+1;
end;
while (s[k]<>' ') and (k<=length(s)) do
begin
row[j]:=row[j]+s[k];
k:=k+1;
end;
end;
DataModule7.Query1.Close;
DataModule7.Query1.SQL.Clear;
DataModule7.Query1.SQL.Add('REPLACE INTO Detalizaciya Values (');
ss:='';
row[2]:=TimeToStr(StrToTime(row[2]));
for j:=1 to 6 do
begin
if j<>1 then ss:=ss+',';
ss:=ss+QuotedStr(row[j]);
end;
ss:=ss+')';
DataModule7.Query1.SQL.Add(ss);
DataModule7.Query1.ExecSQL;
end;
end;
end;
Добавлено через 2 минуты 27 секунд
Вот ещё один ввод, из EXCEL в базу:
procedure TForm2.BitBtn4Click(Sender: TObject);
var
WorkBk : _WorkBook;
WorkSheet : _WorkSheet;
K, R, X, Y : Integer;
IIndex : OleVariant;
RangeMatrix : Variant;
NomFich : WideString;
ss:string;
i,j:integer;
row:array [1..7] of string;
begin
if OpenDialog1.Execute then
begin
NomFich := OpenDialog1.FileName;
IIndex := 1;
XLApp.Connect;
// Excel
XLApp.WorkBooks.Open(NomFich,EmptyParam,EmptyParam ,EmptyParam,EmptyParam, EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyP aram, EmptyParam,EmptyParam,0);
WorkBk := XLApp.WorkBooks.Item[IIndex];
WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet;
WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,Em ptyParam).Activate;
X := XLApp.ActiveCell.Row;
Y := XLApp.ActiveCell.Column;
StringGrid1.ColCount := Y;
RangeMatrix := XLApp.Range['A1',XLApp.Cells.Item[X,Y]].Value;
XLApp.Quit;
XLApp.Disconnect;
// TStringGrid
K := 1;
repeat
for R := 1 to Y do
StringGrid1.Cells[(R - 1),(K - 1)] := RangeMatrix[K,R];
Inc(K,1);
StringGrid1.RowCount := K + 1;
until
K > X;
// RangeMatrix
RangeMatrix := Unassigned;
begin
for i:=7 to StringGrid1.RowCount-1 do
begin
row[1]:=StringGrid1.Cells[1,i];
row[2]:=StringGrid1.Cells[4,i];
row[3]:=StringGrid1.Cells[7,i];
row[4]:=StringGrid1.Cells[13,i];
row[5]:=StringGrid1.Cells[18,i];
row[6]:=StringGrid1.Cells[22,i];
row[7]:=StringGrid1.Cells[24,i];
DataModule7.Query1.Close;
DataModule7.Query1.SQL.Clear;
DataModule7.Query1.SQL.Add('REPLACE INTO Napravlenie Values (');
ss:='';
for j:=1 to 7 do
begin
if j<>1 then ss:=ss+',';
ss:=ss+QuotedStr(row[j]);
end;
ss:=ss+')';
DataModule7.Query1.SQL.Add(ss);
//showmessage(DataModule2.Query1.Text);
DataModule7.Query1.ExecSQL;
end;
end;
end;
end;
Добавлено через 1 минуту 13 секунд
в EXCEL так же инф-я о звонках, только с более чёткой детализацией по направлениям.Последний раз редактировалось kskb7771; 29.03.2010 в 14:37. Причина: Добавлено сообщение
-
29.03.2010, 15:50 #12
- Регистрация
- 09.03.2010
- Сообщений
- 16
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Ну вместо статичного XLApp можно было пользовать динамическое создание сервера автоматизации Excel в коде. Гибче оно было бы. Но это уже нюансы.
Человеку свойственно ошибаться. Но выводы из ошибок делают немногие. Увы...
Похожие темы
-
MS SQL 2005 (2008) Developer
от Merkar в разделе ПолезностиОтветов: 23Последнее сообщение: 23.03.2016, 20:07 -
Серийники для MS SQL 2008
от ventura21 в разделе ПолезностиОтветов: 3Последнее сообщение: 23.10.2011, 12:22 -
Delphi+TChart
от Malish22 в разделе Прикладное программированиеОтветов: 0Последнее сообщение: 10.09.2009, 00:08 -
Delphi, TChart
от _58joints в разделе Прикладное программированиеОтветов: 1Последнее сообщение: 11.05.2009, 16:08 -
Lumigent LogExplorer (для востановления БД в SQL)
от Merkar в разделе ПолезностиОтветов: 0Последнее сообщение: 27.07.2008, 13:34
Социальные закладки