拥有这样的记录并不罕见:
TAddress = record
Address: string[50];
City : string[20];
State : string[2];
ZIP : string[5];
end;
Run Code Online (Sandbox Code Playgroud)
拥有硬编码字符串大小以确保字符串大小不会超过为数据分配的数据库字段大小.
但是,鉴于该ShortString类型已被弃用,Delphi开发人员正在做什么来"解决"这个问题?声明记录字段string可以完成工作,但不能保护数据不超过正确的长度.
这里最好的解决方案是什么?
我使用 Visual Studio 代码构建 Angular 应用程序已经有一段时间了。这很棒。
然而,我似乎失去了一个非常有价值的功能——用于合并的内联操作。
根据这个:
https://code.visualstudio.com/Docs/editor/versioncontrol#_merge-conflicts
它说,“差异被突出显示,并且有内联操作来接受一个或两个更改。”
我曾经看到过接受给定更改的内联操作,但我不再看到它们了。
我是否缺少某些功能或配置?我已经搜索了配置选项,但看不到任何内容。
如何恢复我的内联合并操作?
我陷入了困境。
我开始使用 NestJS 构建一个良好的老式 REST API todo 服务器。然后我使用这篇文章将 Auth0 添加到其中,您可以使用AuthGuard:
https://auth0.com/blog/developing-a-secure-api-with-nestjs-adding-authorization/
然而,我从来没能让事情正常工作,总是出错401 Unauthorized。这很令人沮丧。
然后我找到了这篇文章:
https://auth0.com/blog/full-stack-typescript-apps-part-1-developing-backend-apis-with-nestjs/
这让我构建了中间件来使用 Auth0 和 JWT 进行身份验证。你瞧,它成功了。
但这感觉不对——我觉得我应该能够利用NestJS 装饰器的优点@UseGuards来完成整个授权工作。AuthGuard
所以我想我的问题有两个:我在使用中间件而不是 NestJS 装饰器方面犹豫不决是错误的吗?有没有人有一个在 NestJS 中使用装饰器的简单有效的例子?
当我尝试运行时,我收到以下信息ng serve --open
PS C:\\Code\\atd> ng serve --open\n\xe2\xa0\x8b Generating browser application bundles (phase: setup)...C:\\Code\\atd\\node_modules\\@angular-devkit\\build-webpack\\src\\webpack-dev-server\\index.js:79\n const address = devServer.server.address();\n ^\n\nTypeError: Cannot read properties of undefined (reading 'address')\n at C:\\Code\\atd\\node_modules\\@angular-devkit\\build-webpack\\src\\webpack-dev-server\\index.js:79:46\nPS C:\\Code\\atd> \nRun Code Online (Sandbox Code Playgroud)\n我用谷歌搜索没有结果。
\n我已删除 node_modules 并运行npm install.
ng build运行和构建良好。
我很困惑。
\n有谁知道为什么会突然出现这个错误?
\n编辑:添加我的 package.json:
\n{\n "name": "angular-for-rank-beginners",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve --ssl true --ssl-key /node_modules/browser-sync/lib/server/certs/server.key --ssl-cert /node_modules/browser-sync/lib/server/certs/server.crt",\n "build": "ng build",\n "test": "ng test",\n "lint": "ng lint",\n …Run Code Online (Sandbox Code Playgroud) 标题就是它......
你为什么要使用constructor约束?
class约束显然暗示了这一点.
如果你单独使用它,你就不能对你创建的东西做任何事情.
为什么它甚至存在?
附加信息:
就像一个注释,在添加"构造函数"约束之前,以下代码不会编译:
program Project3;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
type
TSomeClass<T: class> = class
function GetType: T;
end;
{ TSomeClass<T> }
function TSomeClass<T>.GetType: T;
begin
Result := T.Create;
end;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
Run Code Online (Sandbox Code Playgroud) 我有一个大约1,000,000行固定宽度数据的文件.
我可以读它,解析它,做所有这些.
我不知道的是以编程方式将其放入SQL Server数据库的最佳方法.我需要通过T-SQL或Delphi或C#来实现(换句话说,命令行解决方案不是我需要的......)
我知道BULK INSERT,但这似乎只适用于CSV .....?
我应该从我的固定宽度数据创建一个CSV文件BULK INSERT吗?
"最快"是指"SQL Server中处理时间最少".
我的愿望是自动执行此操作,以便"职员"轻松选择输入文件并按下按钮以实现它.
将大量固定宽度记录放入SQL Server表的最佳方法是什么?
我继承了一个使用ADO连接到SQL Server的传统Delphi应用程序.
该应用程序有一个"全局连接"的概念 - 它是一个在开始时打开的单一连接,然后在整个应用程序运行期间保持打开状态(可以是几天,几周或更长时间...... )
所以我的问题是:我应该采用这种方式做事还是应该切换到"connect-query-disconnect"做事方式?有关系吗?
切换将是一项非常重要的任务,但如果它意味着更好的性能,数据管理等,我会这样做.
我定义Todo如下:
export class Todo {
id: number;
title: string;
complete: boolean = false;
editMode: boolean = false;
}
Run Code Online (Sandbox Code Playgroud)
我有以下数据服务:
getAllTodos(): Observable<Array<Todo>> {
return this.aHttpService.get<Array<Todo>>('http://localhost:3000/todos');
}
Run Code Online (Sandbox Code Playgroud)
然后,我有这个组件:
import { Component, OnInit } from '@angular/core';
import { TodoDataService } from '../todo-data.service';
import { Todo } from '../todo';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-all-tasks',
templateUrl: './all-tasks.component.html',
styleUrls: ['./all-tasks.component.css']
})
export class AllTasksComponent implements OnInit {
constructor(private todoDataService: TodoDataService) {}
allTodos: Observable<Array<Todo>>;
ngOnInit() {
this.allTodos = this.todoDataService.getAllTodos();
}
} …Run Code Online (Sandbox Code Playgroud) 我有以下代码:
https://stackblitz.com/github/NickHodges/datademo
我正在尝试在页面上显示路线的数据。
正如您从代码中看到的,我已经声明了路径信息,如下所示:
const routes: Routes = [
{
path: 'comp1',
component: Comp1Component,
data: { info: 'Data from Comp1' }
},
{
path: 'comp2',
component: Comp2Component,
data: { info: 'Data from Comp2' }
}
];
Run Code Online (Sandbox Code Playgroud)
我已经声明了一个这样的组件:
import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-comp1',
templateUrl: './comp1.component.html',
styles: []
})
export class Comp1Component implements OnInit {
constructor(public route: ActivatedRoute) {}
ngOnInit() {}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试data像这样访问该属性:
<p>
comp1 works!
</p>
<p>Comp1Data: …Run Code Online (Sandbox Code Playgroud) 我想在不使用约束的情况下检查泛型类型是否“有效”。
换句话说,我想编写以下代码:
class function TMaybe<T>.FromValue(aValue: T): TMaybe<T>;
begin
if T <> nil then
begin
Result := TMaybe<T>.Some(aValue);
end else
begin
Result := TMaybe<T>.None;
end;
end;
Run Code Online (Sandbox Code Playgroud)
但是,这不会编译错误:
E2571 Type parameter 'T' doesn't have class or interface constraint
Run Code Online (Sandbox Code Playgroud)
显然,对于这样的类,我希望能够将任何类型设为 TMaybe。
有没有办法检查无约束类型是否“有效”,即不为空?(我不在乎空字符串等)
我应该写一个TypeIsEmpty<T>(aValue: T): Boolean使用 TypInfo 来弄清楚的吗?我想避免这种情况。
delphi ×4
angular ×3
sql-server ×2
auth0 ×1
connection ×1
field ×1
fixed-width ×1
generics ×1
git ×1
middleware ×1
nestjs ×1
node.js ×1
sql ×1
string ×1
typescript ×1
webpack ×1