function GetFileVersion(exeName : string): string;
const
c_StringInfo = 'StringFileInfo\040904E4\FileVersion';
var
n, Len : cardinal;
Buf, Value : PChar;
begin
Result := '';
n := GetFileVersionInfoSize(PChar(exeName),n);
if n > 0 then begin
Buf := AllocMem(n);
try
GetFileVersionInfo(PChar(exeName),0,n,Buf);
if VerQueryValue(Buf,PChar(c_StringInfo),Pointer(Value),Len) then begin
Result := Trim(Value);
end;
finally
FreeMem(Buf,n);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Caption := Form1.Caption + ' version ' + GetFileVersion(ExtractFileName(Application.ExeName));
end;
کد زیر تمامی جداول دیتابیس را میگردد و فیلدهای متنی را انتخاب میکند و این دو کاراکتر را جایگزین میکند
DECLARE @Table NVARCHAR(800),@Column NVARCHAR(800)
DECLARE Table_Cursor CURSOR
FOR
--پیدا کردن تمام فیلدهای متنی تمام جداول دیتابیس جاری
SELECT T.name, /* Table */
C.name /* Column */
FROM sysobjects T,syscolumns C
WHERE T.id = C.id AND T.xtype = 'u' /* User Table */
AND (C.xtype = 99 /* ntext */
OR C.xtype = 35 /* text */
OR C.xtype = 231 /* nvarchar */
OR C.xtype = 167 /* varchar */
OR C.xtype = 175 /* char */
OR C.xtype = 239 /* nchar */)
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table,@Column
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC ('Update [' + @Table + '] Set [' + @Column + '] = REPLACE(REPLACE(CAST([' + @Column + '] as nvarchar(800)), NCHAR(1610), NCHAR(1740)), NCHAR(1603), NCHAR(1705))')
FETCH NEXT FROM Table_Cursor INTO @Table,@Column
END CLOSE Table_Cursor
DEALLOCATE Table_Cursor
یا به صورت جدول به جدول
update `tbl_name` set
`text` = replace(`text`, 'ک', 'ک') ,
`text` = replace(`text`, 'ی', 'ی');