Запись информации из БД

Тема в разделе "Delphi - Базы данных", создана пользователем VahaC, 9 сен 2007.

  1. VahaC

    VahaC Well-Known Member

    Регистрация:
    10 янв 2007
    Сообщения:
    116
    Симпатии:
    0
    Есть следующий код.

    он полностью рабочий только с одним недостатком,
    если к примеру поле в бд имеет не одну строку а несколько
    то нужно обединить ети строки а место их соединения вставить '\r\n'
    (єто нужно: 1.для полной совместимости с phpMyAdmin; 2. для нормальной записи в БД)


    Помогите плиз а то я уже полностью запутался.
    программа почти готова только вот на этом застрял.



    Код (Text):
    function CheckString(s: String):String;
    var
    i: Integer;
    begin
    Result:='';
    for i:=1 to Length(s) do
    begin
    if s[i]='''' then Result:=Result+'\'+s[i]
    else Result:=Result+s[i];
    end;
    end;

    Код (Text):
        While not aquery.Eof do
    begin
    with aquery.Fields do
    begin
    str:='INSERT INTO `'+TblNames[i]+'` VALUES (';
    For x:=0 to Count-1 do
    begin
    if TryStrToInt(Fields[x].AsString, int) then
    begin
    strch:=Fields[x].AsString;
    check:='int';
    For a:=1 to Length(strch) do
    begin
    if (Ord(strch[a])<Ord('0')) or (Ord(strch[a])>Ord('9')) then check:='str';
    end;
    if check='int' then str:=str+Fields[x].AsString;
    if check='str' then str:=str+''''+CheckString(Fields[x].AsString))+'''';
    //str:=str+Fields[x].AsString;
    end
    else
    if TryStrToFloat(Fields[x].AsString, fl) then
    begin
    strfl:=Fields[x].AsString;
    for y:=1 to Length(strfl) do
    if strfl[y]=',' then strfl[y]:='.';
    str:=str+strfl;
    end
    else
    str:=str+''''+CheckString(Fields[x].AsString)+'''';
    if x=Count-1 then str:=str+');'
    else str:=str+', ';
    end;
    end;
    fil.Add(str);
    aquery.Next;
    end;
     
Загрузка...

Поделиться этой страницей