我试图使 SQLite 表尽可能小。我的表将只包含 1 个字节的无符号整数。但是,不清楚当我创建一个新表时,创建的表的底层结构是什么。例如:
CREATE TABLE test (SmallNumbers INTEGER)
Run Code Online (Sandbox Code Playgroud)
结果 SmallNumbers 字段的大小是否为 1、2、4...8 个字节?
如果我使用上述命令创建 100 万条包含数字“1”的记录来创建表,那么生成的 .db 文件是否会比插入 100 万条全部包含 412,321,294,967,295 值的记录小?
我如何确保这样的表尽可能小,因为我将 1 个字节的无符号整数插入表中(关于磁盘空间)?
我有一个Delphi 3应用程序,已经广泛分发至少十年.今天我收到一份报告称该应用程序在华硕Transformer T100TA-C1-GR(S)Windows 8平板电脑上无法正常运行.具体来说,该应用程序拒绝运行,因为它检测到的屏幕分辨率太小,无法让应用程序正确显示自己.在应用程序中,我有以下条件检查:
if (Screen.Width < 800) or (Screen.Height < 600) then begin
// display a message reporting screen resolution too low
ShowMessage('blah blah...');
Application.Terminate;
Run Code Online (Sandbox Code Playgroud)
当我编译我的应用程序的特殊版本以帮助调试问题,并将应用程序提供给抱怨用户时,他们会报告以下数字:
Width: 980
Height: 550
Run Code Online (Sandbox Code Playgroud)
这是我添加了特殊编译的额外代码,然后我给用户:
ShowMessage('Width: ' + IntToStr(Screen.Width) + #13#10 +
'Height: ' + IntToStr(Screen.Height));
Run Code Online (Sandbox Code Playgroud)
但是,用户发誓他们的平板电脑配置为1368x768.他们甚至切换到1024x768并且Delphi报告了相同的错误数字.
所有TForm.Scaled属性都设置为False.
一条可能有帮助的线索......屏幕宽度和高度检测代码(上图)在以下过程中运行:
procedure TForm1.WMDisaplayChange(var m: TWMDisplayChange);
Run Code Online (Sandbox Code Playgroud)
知道可能会发生什么吗?