DELPHI & SQL - Страница 2
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 12 из 12

Тема: DELPHI & SQL

Комбинированный просмотр

  1. #1
    Пришел за помощью

    Регистрация
    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. Причина: Добавлено сообщение

  2. #2
    Пришел за помощью

    Регистрация
    09.03.2010
    Сообщений
    16
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию

    Ну вместо статичного XLApp можно было пользовать динамическое создание сервера автоматизации Excel в коде. Гибче оно было бы. Но это уже нюансы.
    Человеку свойственно ошибаться. Но выводы из ошибок делают немногие. Увы...

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. MS SQL 2005 (2008) Developer
    от Merkar в разделе Полезности
    Ответов: 23
    Последнее сообщение: 23.03.2016, 20:07
  2. Серийники для MS SQL 2008
    от ventura21 в разделе Полезности
    Ответов: 3
    Последнее сообщение: 23.10.2011, 12:22
  3. Delphi+TChart
    от Malish22 в разделе Прикладное программирование
    Ответов: 0
    Последнее сообщение: 10.09.2009, 00:08
  4. Delphi, TChart
    от _58joints в разделе Прикладное программирование
    Ответов: 1
    Последнее сообщение: 11.05.2009, 16:08
  5. Lumigent LogExplorer (для востановления БД в SQL)
    от Merkar в разделе Полезности
    Ответов: 0
    Последнее сообщение: 27.07.2008, 13:34

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •