Topic: Не сохранить текст вида ООО "ОГОНЬ"
Дмитрий подскажите пожалуйста, в чём проблема. Пытаюсь сохранить клиента с наименованием в скобках, типа "Вася", не даёт. Без скобок всё нормально?!
My Visual Database → Russian → Не сохранить текст вида ООО "ОГОНЬ"
Дмитрий подскажите пожалуйста, в чём проблема. Пытаюсь сохранить клиента с наименованием в скобках, типа "Вася", не даёт. Без скобок всё нормально?!
Приложите пожалуйста проект, так к сожалению не ясна причина.
Приложите пожалуйста проект, так к сожалению не ясна причина.
Отправил вам на почту. Спасибо.
поправьте данные участки скрипта
//Клиенты
procedure frmAddClient_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
if CheckDublicate('NewRecord', 'client', 'name', frmAddClient.edName.sqlValue, frmAddClient.Button1.dbGeneralTableId) then
begin
frmAddClient.Button12.Click;
end else
begin
frmAddClient.Button10.Click;
end;
end;
// запрет на дублирование записей
function CheckDublicate (Action, sTable, sField, sValue: string; id: integer;): boolean;
var
s: string;
begin
result := False;
if Action = 'NewRecord' then
begin
s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE '+sField+' LIKE ' + sValue);
if StrToInt(s) > 0 then result := True;
end;
end;
procedure frmAddClient_btLogSave_OnClick (Sender: string; var Cancel: boolean);
begin
if frmAddClient.chNewClient.Checked then
begin
//Логирование// при создании нового клиента
sCurrentDate := '"' + FormatDateTime('yyyy-MM-DD hh:nn', now) + '"';
sUserName := '"'+ sUser +'"';
sOperation := '"Создан новый клиент"';
sUserPC := '"'+ GetUserName +'"';
sClientName := frmAddClient.edName.sqlValue;
SQLExecute ('INSERT INTO users_logs (UserPC, datetimeEvent, operation, login, ClientName) VALUES('+sUserPC+',' +sCurrentDate+','+sOperation+','+sUserName+','+sClientName+')');
end;
if frmAddClient.chUpdateClient.Checked then
begin
//Логирование// при редактировании клиента
sCurrentDate := '"' + FormatDateTime('yyyy-MM-DD hh:nn', now) + '"';
sUserName := '"'+ sUser +'"';
sOperation := '"Данные по клиенту отредактированы"';
sUserPC := '"'+ GetUserName +'"';
sClientName := frmAddClient.edName.sqlValue;
sOldClientName := frmAddClient.edOldClientName.sqlValue;
SQLExecute ('INSERT INTO users_logs (UserPC, datetimeEvent, operation, login, ClientName, OldClientName) VALUES('+sUserPC+',' +sCurrentDate+','+sOperation+','+sUserName+','+sClientName+','+sOldClientName+')');
end;
end;
основная ошибка в том, что вы берете текст с компонента для SQL запроса со свойства Text
frmAddClient.edName.Text
а нужно
frmAddClient.edName.sqlValue
скорей всего в других участках скрипта присутствуют подобные ошибки.
поправьте данные участки скрипта
//Клиенты procedure frmAddClient_Button1_OnClick (Sender: string; var Cancel: boolean); begin if CheckDublicate('NewRecord', 'client', 'name', frmAddClient.edName.sqlValue, frmAddClient.Button1.dbGeneralTableId) then begin frmAddClient.Button12.Click; end else begin frmAddClient.Button10.Click; end; end;
// запрет на дублирование записей function CheckDublicate (Action, sTable, sField, sValue: string; id: integer;): boolean; var s: string; begin result := False; if Action = 'NewRecord' then begin s := SQLExecute ('SELECT Count(*) FROM '+sTable+' WHERE '+sField+' LIKE ' + sValue); if StrToInt(s) > 0 then result := True; end; end;
procedure frmAddClient_btLogSave_OnClick (Sender: string; var Cancel: boolean); begin if frmAddClient.chNewClient.Checked then begin //Логирование// при создании нового клиента sCurrentDate := '"' + FormatDateTime('yyyy-MM-DD hh:nn', now) + '"'; sUserName := '"'+ sUser +'"'; sOperation := '"Создан новый клиент"'; sUserPC := '"'+ GetUserName +'"'; sClientName := frmAddClient.edName.sqlValue; SQLExecute ('INSERT INTO users_logs (UserPC, datetimeEvent, operation, login, ClientName) VALUES('+sUserPC+',' +sCurrentDate+','+sOperation+','+sUserName+','+sClientName+')'); end; if frmAddClient.chUpdateClient.Checked then begin //Логирование// при редактировании клиента sCurrentDate := '"' + FormatDateTime('yyyy-MM-DD hh:nn', now) + '"'; sUserName := '"'+ sUser +'"'; sOperation := '"Данные по клиенту отредактированы"'; sUserPC := '"'+ GetUserName +'"'; sClientName := frmAddClient.edName.sqlValue; sOldClientName := frmAddClient.edOldClientName.sqlValue; SQLExecute ('INSERT INTO users_logs (UserPC, datetimeEvent, operation, login, ClientName, OldClientName) VALUES('+sUserPC+',' +sCurrentDate+','+sOperation+','+sUserName+','+sClientName+','+sOldClientName+')'); end; end;
основная ошибка в том, что вы берете текст с компонента для SQL запроса со свойства Text
frmAddClient.edName.Text
а нужно
frmAddClient.edName.sqlValue
скорей всего в других участках скрипта присутствуют подобные ошибки.
Спасибо. Т.е мне надо в скриптах изменить Text на sqlValue, а это никак не повлияет на остальную структуру? Или эта замена актуальна только для конкретных скриптов?
kovalenko
Нужно заменить Text на sqlValue там, где значение компонента используется в SQL запросах.
kovalenko
Нужно заменить Text на sqlValue там, где значение компонента используется в SQL запросах.
Огромное спасибо!!! Всё заработало!!!
My Visual Database → Russian → Не сохранить текст вида ООО "ОГОНЬ"
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi