我正在使用MySQL Workbench做一个小型数据库.我有一个名为"Immobili"的主表,它有一个由四列组成的主键:( Comune,Via,Civico,Immobile).
现在,我还有另外三个表,它们具有相同的主键(Comune,Via,Civico,Immobile),但这些字段也引用了表Immobili.
第一个问题:我可以制作一个也是外键的主键吗?
第二个问题:当我尝试导出更改时,它说:在服务器中执行SQL脚本
# ERROR: Error 1005: Can't create table 'dbimmobili.condoni' (errno: 150)
CREATE TABLE IF NOT EXISTS `dbimmobili`.`Condoni` (
`ComuneImmobile` VARCHAR(50) NOT NULL ,
`ViaImmobile` VARCHAR(50) NOT NULL ,
`CivicoImmobile` VARCHAR(5) NOT NULL ,
`InternoImmobile` VARCHAR(3) NOT NULL ,
`ProtocolloNumero` VARCHAR(15) NULL ,
`DataRichiestaSanatoria` DATE NULL ,
`DataSanatoria` DATE NULL ,
`SullePartiEsclusive` TINYINT(1) NULL ,
`SullePartiComuni` TINYINT(1) NULL ,
`OblazioneInEuro` DOUBLE NULL ,
`TecnicoOblazione` VARCHAR(45) NULL ,
`TelefonoTecnico` VARCHAR(15) NULL ,
INDEX `ComuneImmobile` (`ComuneImmobile` ASC) , …Run Code Online (Sandbox Code Playgroud) 我需要绘制一个六边形,并用一个带有图像作为图案的颜色构建填充它.我做了:
CGContextSaveGState(context);
CGContextSetLineCap(context, kCGLineCapRound);
CGContextSetFillColorWithColor(context, [[UIColor colorWithPatternImage:[UIImage imageNamed:@"patternerba.png"]] CGColor]);
CGContextSetStrokeColorWithColor(context, [[UIColor blackColor] CGColor]);
CGContextSetLineWidth(context, 3.0);
// drawing hexagon here...
CGContextStrokePath(context);
CGContextFillPath(context);
[[NSString stringWithFormat:@"Foo"] drawAtPoint:innerRect.origin withFont:[UIFont fontWithName:@"Helvetica" size:16]];
CGContextRestoreGState(context);
Run Code Online (Sandbox Code Playgroud)
但是根据CGContextStrokePath和CGContextFillPath的顺序,我得到一个六边形但没有填充或填充但没有边框.我怎样才能解决这个问题?
我正在编写一个应用程序来显示门户网站的一些新闻.使用来自Internet的JSON文件获取新闻,然后使用CoreData模型将其存储到NSMutableArray中.显然,用户无法从Internet上的JSON文件中删除新闻,但他可以在本地隐藏它们.问题出现在这里,我有以下代码:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
if( !moc ){
moc = [[NewsFetcher sharedInstance] managedObjectContext];
}
[[dataSet objectAtIndex:indexPath.row] setEliminata:[NSNumber numberWithBool:YES]];
NSError *error;
if( ![moc save:&error] ){
NSLog( @"C'è stato un errore!" );
}
[dataSet removeObjectAtIndex:indexPath.row];
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
}
Run Code Online (Sandbox Code Playgroud)
这条线:
[dataSet removeObjectAtIndex:indexPath.row];
导致我的应用程序崩溃,出现以下错误:
2010-07-12 19:08:16.021 ProvaVideo [284:207] * - [_ PFArray removeObjectAtIndex:]:无法识别的选择器发送到实例0x451c820 2010-07-12 19:08:16.022 ProvaVideo [284:207]*终止app到期到未捕获的异常'NSInvalidArgumentException',原因:'*** - [_ PFArray removeObjectAtIndex:]:无法识别的选择器发送到实例0x451c820'
我试图理解为什么它不起作用但我不能.如果我重新启动应用程序,则会正确地以逻辑方式取消新应用程序.有什么建议??提前致谢.
接口:
@interface ListOfVideo : UITableViewController <NSFetchedResultsControllerDelegate> {
NSMutableArray *dataSet;
}
@property …Run Code Online (Sandbox Code Playgroud) 关于继承如何在C#中工作,我有一个理论/实际的问题.
让我们说我必须为一些汽车建模,所以我有一些常用的方法,所有的汽车必须实现,飞行员应该知道.在代码字中,这应该是一个接口:
interface Automobile {
void speedup();
void break();
void steer();
//bla bla
}
Run Code Online (Sandbox Code Playgroud)
现在,除了飞行员可以对他们执行的操作之外,所有类型的汽车应该有一些共同的技术实现,让我们说属性fuelLevel,此时我仍然不想知道汽车如何加速或发生故障,所以我写道:
abstract class Car : Automobile {
int fuelLevel; // for example....
public abstract void speedup();
public abstract void break();
public abstract void steer();
}
Run Code Online (Sandbox Code Playgroud)
现在我想模拟一辆法拉利,所以:
class Ferrari : Car {
public void speedup() { ... }
public void break() { ... }
public void steer() { ... }
}
Run Code Online (Sandbox Code Playgroud)
现在,在Java中,这段代码应该可以工作(改变一些语法),但在C#中不会因为它说:
Error 1 'Ferrari' does not implement inherited abstract member 'Car.speedup()'
Error 1 'Ferrari' does not …Run Code Online (Sandbox Code Playgroud) 我想知道我是否还没有完全理解 C++ 强制转换与旧的 C 风格强制转换。在MFC中我有这个方法:
CWnd * GetDlgItem(UINT uResId);
Run Code Online (Sandbox Code Playgroud)
我期望从 CWnd派生的CComboBox(或 CEdit)需要这种类型的转换:
dynamic_cast<CComboBox *>(GetDlgItem(IDC_COMBO1));
// for CEdit:
dynamic_cast<CEdit *>(GetDlgItem(IDC_EDIT1));
Run Code Online (Sandbox Code Playgroud)
但此操作会因使用空指针而导致崩溃,这意味着强制转换失败。使用:
reinterpret_cast<CComboBox *>(GetDlgItem(IDC_COMBO1));
// for CEdit:
reinterpret_cast<CEdit *>(GetDlgItem(IDC_EDIT1));
Run Code Online (Sandbox Code Playgroud)
解决了问题,但我很失望。我缺少什么?
我正在将一个旧的数据库SyBase转换为MySQL,我有这个DDL查询:
ALTER TABLE "DBA"."tab_prodotto"
ADD FOREIGN KEY "fkey_idlinea" ("tpr_idlin")
REFERENCES "DBA"."linea" ("lin_id")
go
COMMENT ON FOREIGN KEY "DBA"."tab_prodotto"."fkey_idlinea" IS
'Riferimento linea'
go
Run Code Online (Sandbox Code Playgroud)
查询的Alter部分运行良好,但我在COMMENT上遇到了麻烦.我已经知道我可以改变一个用于添加COMMENT的列,但是外键也可以吗?如果有,怎么样?我没有发现任何关于文档的特殊内容.先感谢您.
我已经开发了一个客户,他在进行某项操作时会遇到这个问题.这不会发生在同一个地方和相同的数据上,而且,它不会发生,也不会发生在我的本地开发机器上,也不会发生在我的测试虚拟机(没有所有开发设备)中.
鉴于这些条件,我决定使用MAP进行编译(在配置属性 - >链接器 - >调试器中启用选项/ MAP)以查看哪个函数导致崩溃.
如果我已经正确理解,当程序崩溃时我要检查偏移错误然后在我的MAP中搜索RVA + BASE列:
Address Publics by Value Rva+Base Lib:Object
0001:00037af0 ?PersonalizzaPlancia@CDlgGestioneDatiProgetto@MosaicoDialogs@@IAEXXZ 00438af0 f DlgGestioneDatiProgetto.obj
0001:00038000 ?SalvaTemporanei@CDlgGestioneDatiProgetto@MosaicoDialogs@@IAEXXZ 00439000 f DlgGestioneDatiProgetto.obj
Run Code Online (Sandbox Code Playgroud)
实际上,我的崩溃发生在偏移:
00038C90Run Code Online (Sandbox Code Playgroud) 所以我认为它在方法中的某个地方:
MosaicoDialogs::CDlgGestioneDatiProgetto::PersonalizzaPlanciaRun Code Online (Sandbox Code Playgroud)
但这并非绝对可能,所以假设计算机不能出错,我就是那个做得不好的人.
有人能解释我如何以正确的方式阅读MAP吗?
像往常一样,我有一个UIViewController的子类.当我加载应用程序时,我需要调整一些我必须以编程方式放入的元素.当然,大小取决于界面方向:所以,我做了:
- (void)viewDidLoad {
switch( [self interfaceOrientation] ) {
case UIInterfaceOrientationPortrait:
case UIInterfaceOrientationPortraitUpsideDown:
NSLog(@"Portrait");
break:
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
NSLog(@"Landscape");
break;
}
Run Code Online (Sandbox Code Playgroud)
但无论模拟器/设备的方向如何,即使一切都正确旋转,情况也始终是viewDidLoad/WillAppear中的Portrait.在Plist中,我添加了所有支持的方向.提示?
c++ ×2
mfc ×2
mysql ×2
objective-c ×2
c# ×1
casting ×1
foreign-keys ×1
inheritance ×1
iphone ×1
map-files ×1
oop ×1
sql ×1