我正在尝试创建一个审计触发器,将blob数据作为longtext数据类型插入.
当我使用select时,我会看到图像的内容,但是当我使用相同的格式插入时,它会显示为空白.
Works:数据显示图像的原始内容
select cast(my_image as char) as data from MyTable
Run Code Online (Sandbox Code Playgroud)
不起作用:数据列显示为空白(0byte)
insert into MyAuditTable (data) values ( cast(NEW.my_image as char) )
Run Code Online (Sandbox Code Playgroud)
更新:9月12日 我试图通过一个函数希望通过显式指定类型然后它将采取,但没有运气那里
CREATE FUNCTION `BLOB2TXT`(dablob LONGBLOB) RETURNS LONGTEXT
NO SQL
DETERMINISTIC
BEGIN
RETURN CAST(dablob AS CHAR CHARACTER SET utf8);
END
Run Code Online (Sandbox Code Playgroud)
我在github上发布我的项目,如果有人想看看或想要使用我拥有的.随时欢迎你 :)
https://github.com/hotmit/mysql-sp-audit
现在唯一给我一些希望的是Hex(blob),但是当我UNHEX()时,数据是不可读的.
我正在尝试为一队卡车实施地理围栏.我必须将边界列表与车辆相关联.除此之外,其中一个要求是,为了审计目的,删除所有内容甚至一旦删除.因此,我们必须对所有内容实施软删除.这就是问题所在.我的多对多字段不符合软删除管理器,它包括查找数据集中的活动和非活动记录.
class Vehicle(SoftDeleteModel):
routes = models.ManyToManyField('RouteBoundary', through='VehicleBoundaryMap', verbose_name=_('routes'),
limit_choices_to={'active': True})
class VehicleBoundaryMap(SoftDeleteModel):
vehicle = models.ForeignKey(Vehicle, verbose_name="vehicle")
route_boundary = models.ForeignKey(RouteBoundary, verbose_name="route boundary")
# ... more stuff here
alive = SoftDeleteManager()
class SoftDeleteManager(models.Manager):
use_for_related_fields = True
def get_queryset(self):
return SoftDeleteQuerySet(self.model).filter(active=True)
Run Code Online (Sandbox Code Playgroud)
如上所示,我试图确保默认管理器是一个软删除管理器(即仅用于活动记录的过滤器),并尝试使用limit limit_choices_to但结果只是对外部模型进行了字段而不是我想要的"直通"模型.如果您有任何建议或建议,我很乐意听取您的意见.
谢谢!
我实现了从字符串到对象的显式转换,称为Foo.
所以=> Foo f =(Foo)"foo data"; 作品
我需要实现一个将字符串强制转换为泛型T的函数,在这种情况下,T是Foo数据类型.
public T Get<T>(object o){
// this always return false
if (typeof(T).IsAssignableFrom(typeof(String)))
{
// when i by pass the if above this throws invalid cast exception
return (T)(object)str;
}
return null;
}
// When I call this, it generated an error
// Invalid cast from 'System.String' to Foo
Foo myObj = Get<Foo>("another foo object");
// when I use the dynamic keyword it works but this is C# 4.0+ feature, my function is in …Run Code Online (Sandbox Code Playgroud) 我正在尝试将python dict转换为json,但是我正在访问的API不使用bool值而是使用"true"/"false"字符串.
例:
dct = { "is_open": True }
json.dumps(dct)
Run Code Online (Sandbox Code Playgroud)
目前给出一个bool输出: { "is_open": true }
但我想要的是小写字符串输出:
{ "is_open": "true" }
我试过json.dumps(dct, cls=MyEncoder)但它不起作用,只有非本机对象传递给MyEncoder默认.
class MyEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, bool):
return str(o).lower()
return super(MyEncoder, self).default(o)
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很棒.
(顺便说一下,这不是我正在访问的API,因此我无法修改API以访问真正的false值而不是字符串替代.)
我使用 gis 多边形字段得到了一个带有字段的模型。
boundary = models.PolygonField()
Run Code Online (Sandbox Code Playgroud)
作为要求,我需要允许用户提供偏移/公差值。如何在不自己计算的情况下扩展或缩小此多边形?
谢谢!